תאוריה (דלגו ל"הערות חשובות" אם אתם מחפשים מידע שקשור בנושא)
EVENT בפלאש הוא אירוע שמתקיים בזמן שהסרטון שלכם רץ.
ישנם הרבה מאוד סוגים של EVENTS בפלאש:
MOUSE EVENT
KEYBOARD EVENT
SYSTEM EVENT
ועוד...
כל אירוע שכזה הוא פשוט מאוד תנאי שהתקיים ברגע מסויים.
לדוגמא: MOUSE EVENT מתקיים כאשר התנאי : "העכבר נלחץ" התקיים, KEYBOARD EVENT מתקיים כאשר התנאי "מקש במקלדת נלחץ" מתקיים, ועוד.
FLASH נותן לנו את האפשרות להשתמש ב "EVENT HANDLERS" (תרגום חופשי: בקרי אירועים) שיודעים לזהות מתי EVENT כלשהו התקיים, ובאמצעותם להריץ קוד מסויים בעקבות האירוע.
בואו ניתן דוגמא.
נניח ואני רוצה שאחרי שמשתמש לחץ על כפתור מסויים, תופיע הודעה "הכפתור נלחץ" (כדי להציג הודעות בפלאש נשתמש בפקודת TRACE, שמציגה את ההודעה שנכתבה בסוגריים בגרשיים)
אז הקוד שאנחנו רוצים להריץ יהיה:
קוד
trace("הכפתור נלחץ");
אוקי, אז הקוד מוכן, איך פלאש ידע להריץ את הקוד שכתבנו דווקא כשהכפתור נלחץ?
בשביל זה יש לנו את הEVENT HANDLER (ומעכשיו נקרא להם TRIGERS בדומה לנצרה של אקדח שאם היא מופעלת, היא "יורה את הכדור" - מפעילה את הקוד) שנקרא:
קוד
ON
on הוא TRIGER של כפתורים בפלאש, והוא יכול לבדוק כל מיני דברים שנתבצעו על הכפתורים, לדוגמא:
האם הכפתור נלחץ ונעזב, האם הוא נלחץ ולא נעזב, האם הוא נלחץ אבל העכבר נעזב מחוץ לכפתור, האם העכבר נמצא על הכפתור, האם העכבר נמצא מחוץ לכפתור ועוד.
במקרה שלנו, אנחנו רוצים לדעת האם הכפתור נלחץ ונעזב, ורק אם התנאי הזה מתממש, להריץ את הקוד.
לפני שאני כותב את הקוד המלא, נסתכל איך רושמים TRIGERS בפלאש:
קוד
triger(event) {
//your code
}
במקום TRIGER נרשום את שם הTRIGER, במקום EVENT נרשום את ה"תנאי" שלנו, או במילים אחרות האם האירוע התממש, ובמקום your code את הקוד שאנחנו רוצים להריץ אם אכן הtriger הופעל.
ולגבי הדוגמא שלנו:
קוד
on (release) {
trace("הכפתור נלחץ");
}
RELEASE זה האירוע שאנחנו מחפשים, את הקוד נשים בACTIONS של הכפתור.
בואו נחזור לדבר על עוד טריגרים.
לאובייקטים שונים (אובייקט יכול להיות כפתור, MC, או כל דבר אחר) יש טריגרים שונים, אחד הטריגרים הידועים של אובייקט MC נקרא onClipEvent.
טריגר זה יכול לזהות אירועים שונים ומגוונים ולכן הוא בשימוש כל כך נפוץ.
דוגמאות לאירועים שטריגר זה יכול לאתר:
כניסה לפריים, טעינת הפריים, אי טעינת הפריים, שינוי מידע במשתנים, לחיצת עכבר , תזוזת עכבר, אי לחיצת עכבר, לחיצת מקש במקלדת.
בואו ניתן דוגמא להמחשה
נניח ויצרתי MC חדש (movie clip) ואני רוצה שבכל פעם שאני נכנס לפריים שהMC נמצא בו, תוצג ההודעה "נכנסו לפריים" על המסך (מובן שנשתמש בTRACE)
אז הקוד שלנו יהיה:
קוד
trace("נכנסו לפריים");
והקוד יבוא בתוך הTRIGER שלנו (את הקוד נשים בACTIONS של הMC):
קוד
onClipEvent(enterFrame) {
trace("נכנסו לפריים");
}
enterFrame הוא האירוע שלנו. כמובן שההודעה תוצג בכל פעם שנכנסו לפריים (אם הFPS שלכם - המהירות פריימים לשניה - היא 12, אז ההודעה תוצג 12 פעמים בשניה בתנאי שהMC נמצא בפריים הראשון וזהו הפריים היחיד).
הערות חשובות:
א) אם נכתוב סתם קוד בתוך הACTIONS של אובייקט מסויים (לדוגמא MC, או כפתור), פלאש יציג שגיאה ויבקש ממכם לשים את הקוד בתוך TRIGER של האובייקט.
ב) קוד שנכתב בACTIONS של פריים הוא כברירת מחדל מופעל עם טעינת הפריים, ללא צורך בTRIGER. אם בכל זאת תרצו לשים קוד בACTIONS של הפריים שיפעל בתוך TRIGER, יש להשתמש בMETHODS (מתודות) בפלאש - נושא שמצריך מדריך משלו.
ג) כל TRIGER פועל על אובייקט מסויים, ולא על אף אובייקט אחר (לדוגמא: הטריגר "on" לא יפעל בMC, כי הוא שייך לאובייקט כפתור)
רשימת אירועים לטריגר on :
קוד
press
release
releaseOutside
rollOut
rollOver
dragOut
dragOver
keyPress "<key> "
באירוע האחרון, כותבים את שם המקש במקום ה <key> (עם גרשיים).
רשימת אירועים לטריגר onClipEvent :
קוד
load
unload
enterFrame
mouseMove
mouseDown
mouseUp
keyDown
keyUp
data






ציטוט ההודעה