לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 31-07-2006, 11:03
  debeg debeg אינו מחובר  
 
חבר מתאריך: 19.08.04
הודעות: 107
בעיה ב-hitest. זקוקה מאד לעזרה

שלום,
כבר המון זמן אני מנסה ללמוד איך לכתוב as להיטסט.
קראתי את כל המדריכים, גם בפרש וגם באתרים אחרים.
קיבלתי לפני בערך שנה עזרה בפורום מקולרוי. הודיתי לו על זה מאד, זה עבד. אבל לא ידעתי לכתוב את ההמשך.
אני מאד מאד אודה למי שיוכל לעזור לי:
אם יש לי שני mc נניח שלאחד קוראים s1 ולשני s2,
ואני רוצה שכשהם יגעו אחד בשני הם יצמדו זה לזה ואי אפשר יהייה להזיז אותם - הכוונה שאם יש למשל שני חלקים של פאזל הם צריכים להצמד בדיוק על הקו.
או - אם אני רוצה שברגע שהם נוגעים אחד בשני, החלק שאני גוררת, יעלה על החלק הסטאטי, יצמד למרכז שלו, והסטאטי ייעלם. אין לי מושג איך לכתוב את זה.
אני מרגישה כמו מפג.....
בבקשה בבקשה תעזרו לי. אני יודעת שאתם יכולים.
ובאמת שניסיתי ללמוד בעצמי אז.....
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #2  
ישן 31-07-2006, 11:43
צלמית המשתמש של coolroy
  משתמש זכר coolroy coolroy אינו מחובר  
מנהל פורום פלאש
 
חבר מתאריך: 04.03.05
הודעות: 5,834
:)
בתגובה להודעה מספר 1 שנכתבה על ידי debeg שמתחילה ב "בעיה ב-hitest. זקוקה מאד לעזרה"

ככה מתבצע hitTest בין 2 מוביקליפים:

קוד:
if(s1.hitTest(s2)) { //action }
כתבתי לך קוד די פשוט לפאזל לחסוך לך זמן שלא תצטרכי להתאים hitTset לכל MC בנפרד
קוד:
pazel_parts = 10 for (i = 1; i < pazel_parts + 1; i++) { _root["part" + i].onPress = function() { this.startDrag(true) } _root["part" + i].onRelease = function() { this.stopDrag() } _root["part" + i].onReleaseOutSide = function() { this.stopDrag() } } onEnterFrame=function() { for (i = 1; i < pazel_parts + 1; i++) { if (_root["part" + i].hitTest(_root["match" + i])) { _root["part" + i]._x = _root["match" + i]._x _root["part" + i]._y = _root["match" + i]._y } } }
תשני את pazel_parts למספר חלקי הפאזל שיש לך, לכל חלק נגרר של הפאזל תתני את ה instance name:
part ואחרי מספר בסדר עולה עד מספר חלקי הפאזל שיש לך.
לתואם שלו (אשר מקובע) תתני את השם match ואותו המספר.
אל תתני להם קודים הכל כלול
FLA דוגמא:
https://2006-uploaded.fresh.co.il/2...31/72037051.fla
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 31-07-2006, 11:51
צלמית המשתמש של noam906
  noam906 noam906 אינו מחובר  
 
חבר מתאריך: 21.09.05
הודעות: 5,321
שלח הודעה דרך MSN אל noam906
לא צריך להילחץ או להתחנן.
בתגובה להודעה מספר 1 שנכתבה על ידי debeg שמתחילה ב "בעיה ב-hitest. זקוקה מאד לעזרה"

אוקיי. נעבור חלק חלק על הקוד עם החלק הסטטי והדינאמי.

תחילה נגדיר את שני ה-MC. אני קראתי לאחד sp, כלומר Static part, ולשני dp, כלומר Dynamic part. כל אחד מהם הוא עיגול, כאשר sp הוא מעט יותר גדול מהשני.

עכשיו נכתוב קוד גרירה ל-dp. אנחנו צריכים לומר למחשב - "אם העכבר לחוץ על dp, התחל לגרור"



קוד:
_root.dp.onPress = function(){ this.startDrag() }




"אם העכבר היה לחוץ על dp וכעת הוא משוחרר, הפסק לגרור"



קוד:
_root.dp.onRelease = function(){ this.stopDrag() }




הערה: בשתי הפונקציות האלה השתמשתי במשתנה this. המשתנה הוא משתנה דינאמי מטבעו ומתייחס לאובייקט, או במקרה שלנו ל-MC, שעליו דיברנו. בשני הקודים רשום בתחילה:


קוד:
_root.dp.onPress


ולכן this מוגדר כאן כ-dp. יש לו שימושים יותר שימושיים, אבל כאן זה נועד כדי להקל על הכתיבה.

אוקיי - נחזור לקוד המקורי. עכשיו נגדיר למחשב את הדבר הבא: "אם העכבר זז בדוק האם dp נוגע ב-sp. אם הוא נוגע, קבע את ה-x וה-y של dp כמו של sp, מחק את המווי קליפ sp והפסק לגרור את dp".

השתמשתי בארוע (Event) "כאשר העכבר זז" (onMouseMove) במקום "בכניסת פריים" (onEnterFrame). למה, את שואלת? כדי לחסוך עבודה מהמחשב. ברור לכולנו ש-MC נגרר אחרי העכבר וזז העכבר צריך לזוז. אין לנו טעם לבדוק כל הזמן האם יש נגיעה כי יכול להיות מצב שהעכבר לא זז ולכן אין סיכוי שיהיה hitTest בין המוי קליפים. היגיון פשוט...מקווה שזה מובן.

ככה רושמים את זה:


קוד:
_root.onMouseMove = function(){


עכשיו נשתמש בפקודת ה-hitTest המוכרת לך. הבדיקה היא בין dp ו-sp, ולכן היא תיכתב כך:


קוד:
if (_root.dp.hitTest(_root.sp)){


עכשיו נגדיר בתוך ה-if של ה-hitTest מה יקרה אם מתקיימת הנגיעה:
1. מיקום ה-X של dp יהיה כמו של sp:


קוד:
_root.dp._x = _root.sp._x


2. מיקום ה-Y של dp יהיה כמו של sp:


קוד:
_root.dp._y = _root.sp._y


3. נמחק את המווי קליפ sp מהבמה:


קוד:
_root.sp.unloadMovie()


4. נספיק את הגרירה של dp (הרי אם הזזנו את העכבר אל sp והייתה נגיעה לפני ששיחררנו אותו, dp ימשיך להיגרר אחרי העכבר שלנו. פשוט ניתן פקודה כמו קודם שמורה ל-dp להפסיק להיגרר.


קוד:
_root.dp.stopDrag()


עכשיו נסגור את כל הסוגריים הגדולים, והקוד מוכן. ככה הוא נראה בלי לפרק אותו לחלקים:


קוד:
_root.dp.onPress = function(){ this.startDrag() } _root.dp.onRelease = function(){ this.stopDrag() } _root.onMouseMove = function(){ if (_root.dp.hitTest(_root.sp)){ _root.dp._x = _root.sp._x _root.dp._y = _root.sp._y _root.sp.unloadMovie() _root.dp.stopDrag() } }



אני מצרף קובץ fla וקובץ swf כדי להשוות את התוצאות.

https://2006-uploaded.fresh.co.il/2...31/41133224.fla
https://2006-uploaded.fresh.co.il/2...31/82743620.swf

מקווה שעזרתי נעם.

עריכה: לא ראיתי את הקוד שלך, רועי, לפני ששלחתי. לפחות כל אחד רשם על משהו שונה. ד"א, הייתי ממליץ גם לך להשתמש כאן ב-onMouseMove ולא ב-onEnterFrame כדי לחסוך משאבים.
_____________________________________
בברכה, נעם בריקמן
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה


נערך לאחרונה ע"י noam906 בתאריך 31-07-2006 בשעה 11:53.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 31-07-2006, 14:10
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
לא... איך הבנת את זה?
בתגובה להודעה מספר 12 שנכתבה על ידי noam906 שמתחילה ב "היא אמרה שהיא יושבה וניסתה להכין את הקוד, אך ללא הצלחה."

ציטוט:
תוך כדי התשובות שלנו והתיקונים שלך ושל אחרים גם אנחנו מרוויחים מן האשכול, ולא רק שואל השאלה. תחשוב על זה
זאת בדיוק הכוונה שלי מאחורי הבקשה שלי לא לפרסם קודים שלמים. הכוונה שאחד יציע דרך לפתור חלק מסויים בקוד, ואחד אחר יציע דרך שונה, ועוד אחד שלישי יציע איך אפשר לשפר את הדרכים שהוצעו וכו'.

אם אתה מפרסם קוד שלם זה בעצם לא נותן אפשרות להגיב או לתקן מפני שברוב המקרים הקוד לא טוב מיסודו.

בכל מקרה, לא הבנתי איך זה מתקשר לרובוטים. לזה שהיא ניסתה אין שום קשר, העזרה הכי גדולה שיכולה להיות מצידכם זה להראות לה את הדרך.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #16  
ישן 31-07-2006, 16:50
  debeg debeg אינו מחובר  
 
חבר מתאריך: 19.08.04
הודעות: 107
תודה תודה תודה ו...
בתגובה להודעה מספר 15 שנכתבה על ידי coolroy שמתחילה ב "כמעט בטוח שהיא הבינה את..."

לרועי ונועם
אלפי תודות. העזרה שלכם הייתה מאוד גדולה ונדיבה.
זאת לא פעם ראשונה שאני מקבלת עזרה פה בפורום, במיוחד מרועי.
ובאמת שהידע שלי ב as הוא מועט ואני לא מצליחה להתקדם בכוחות עצמי.
בקשתי בעבר בפורום, ואני שוב מבקשת. אם יש מישהו שמוכן לתת שיעורים פרטיים ב as
ובכלל בפלאש, אני מאד אשמח ליצור איתו קשר, בתשלום כמובן. אולי עכשיו, כשחופש יש מישהו מהתותחים כאן שהוא קצת יותר פנוי...?
ולפוקסי בריין - אני מבינה את הגישה שלך. היא נכונה, אבל לא תמיד מתאימה. בהחלט משתי ההצעות שקיבלתי אני יכולה ללמוד הרבה,
ומאד אודה לך אם תדגים את התיקונים שלך לקודים באופן שגם הדיוטה כמוני תוכל להבין. זאת באמת תהייה עזרה גדולה.
שוב תודה רבה רבה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #19  
ישן 31-07-2006, 17:45
  -FoxyBrain- -FoxyBrain- אינו מחובר  
 
חבר מתאריך: 03.09.05
הודעות: 2,857
היא כן תמיד מתאימה - למי שמעונין ללמוד.
בתגובה להודעה מספר 16 שנכתבה על ידי debeg שמתחילה ב "תודה תודה תודה ו..."

תביני, לא כל דבר בחיים צריך להיות מסודר ובתשלום, את לומדת מתוך העשיה וההתעסקות.
זו גישה לא נכונה לפי דעתי לומר- "טוב, עכשיו תנו לי קוד מוכן ואחר כך אני אמצא מורה שילמד אותי". את צריכה ללמוד מתוך השאלות שלך - ככה רוב הגולשים בפורום למדו.

שלא תביני לא נכון, אין לי בעיה שלא תלמדי ואני לא מטיף לך מוסר או משהו, זה לא ממש עניני.
מה שכן עניני וחובתי בתור מנהל זה שהפורום יהיה מקצועי, שיתפתחו בו דיונים ושיהיה פשוט מקום שאפשר ללמוד ממנו משהו, כמו הרבה פורומי פלאש בעולם וגם בארץ.
קודים מוכנים אתם מוזמנים לתת באייסיקיו, מסנגר או אפילו בהועדות פרטיות- זה לא תורם בשום צורה לפורום.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 09:30

הדף נוצר ב 0.08 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר