בחזרה לעמוד הבית

פקודת onClipEvent

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



את הפקודה ניתן לבחור מתפריט Actions או ע"י לחיצת Esc ולאחר מכן על המקשים O ו - C (מתוך חלון ה - Actions).



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


פעולת הסרט
ישנן 3 פעולות הקשורות במוביקליפ עצמו:
1. Load - ביצוע פעולה מסויימת כאשר המוביקליפ מופיע בציר הזמן (של הסרט הראשי, או כתוצאה מפקודת Load Movie).
2.Unload - ביצוע פעולה מסויימת כאשר המוביקליפ מפסיק להתקיים על ציר הזמן.
3.Enter Frame - הפקודות אשר רשומות בתוך event זה יתבצעו בכל פעם שיתחלף פריים (תלוי במהירות הסרט - Frame Per Second אשר אותה ניתן לקבוע במאפייני הסרט ע"י לחיצה על Ctrl+M). פקודה זו שימושית ביותר ומורידה את הצורך שהיה בפלאש 4 בהכנת מוביקליפ שרץ באופן קבוע ומבצע פעולות על הסרט (כמו לדוגמא ב mouse trailers). דוגמא לפקודה:
onClipEvent (enterFrame) {
	_root.runTime = int(getTimer()/1000);
	_root.textMC._x = 510-_root._xmouse;
}
הסבר הפקודות -
()getTimer - מחזירה את הזמן מאז תחילת הסרט באלפיות שניה
()int - מחזיר ערך שלם מתוך מספר עשרוני.
xmouse_ - מחזיר את מיקום העכבר. הקידומת root_ נמצאת בשביל שנקבל את המיקום לפי הבמה הראשית ולא לפי מרכז המוביקליפ שעליו נמצא הקוד.


העכבר
ישנן 3 פעולות הקשורות בעכבר:
1. Mouse Down - ביצוע פעולה מסויימת כאשר מתבצעת לחיצה על העכבר, כאשר אין כלל קשר למיקום העכבר ברגע הלחיצה (אותו אפשר לברר בעזרת ymouse_ ו - xmouse_) ומיקום המוביקליפ מבחינת הנתיב בו הוא נמצא (Target או Level).
2. Mouse Up - זהה ל Mouse Down, אלא שהוא מתבצע בשחרור העכבר - אין קשר בין מיקום הלחיצה למיקום השחרור (לחיצה בדוגמא המצורפת מדגימה את הנושא).
3. Mouse Move - מתבצע אך ורק כאשר העכבר זז - הפעולה תתבצע ללא קשר לשחרור העכבר או לחיצה עליו.
onClipEvent (mouseDown) {
	_root.downX = int(_root._xmouse);
	_root.downY = int(_root._ymouse);
}
onClipEvent (mouseUp) {
	_root.upX = int(_root._xmouse);
	_root.upY = int(_root._ymouse);
}
onClipEvent (mouseMove) {
	_root.locX = int(_root._xmouse);
	_root.locY = int(_root._ymouse);
}


המקשים
ישנן 2 פעולות הקשורות במקשים:
1. Key Down - ביצוע פעולה מסויימת כאשר מתבצעת לחיצה על מקש כלשהוא - שימוש נפוץ יהיה במשחקים - בשילוב עם אובייקט Key (בתפריט Objects) נוכל לדעת איזה מקש נלחץ ועל פיו לבצע פעולה מסויימת כמו למשל תזוזה בכיוון מסויים של שחקן.
2. Key Up - זהה ל Key Down אלא שכאן תתבצע הפעולה בשחרור המקש.
onClipEvent (keyUp) {
	_root.userPress = chr(Key.getAscii());
}
onClipEvent (keyDown) {
	if (Key.getCode()==Key.UP) {
		this._y = this._y-5;
	} else if (Key.getCode()==Key.DOWN) {
		this._y = this._y+5;
	} else if (Key.getCode()==Key.RIGHT) {
		this._x = this._x+5;
	} else if (Key.getCode()==Key.LEFT) {
		this._x = this._x-5;
	}
}
הסבר הפקודות -
()Key.getAscii - מחזיר את הערך של המקש ב - ASCII (המספר המייצג של התו בין 1 ל 255).
()Key.getCode - מחזיר את הקוד של המקש שנלחץ (לתווים שאינם ניתנים להדפסה יש קוד מובנה בפלאש) - ע"י השוואה לקודים של מקשים ידועים מראש (חיצים בדוגמא שלנו) נוכל לדעת איזה מקש נלחץ. אין זו חובה להשוות לקודים של מקשים ספציפיים (כמו Key.UP למשל) היות ולכל מקש כזה יש מספר משלו (הקוד ל - Key.UP הוא 38 למשל),אך זה יותר נוח ויותר מובן כאשר ניגשים לקוד לאחר זמן רב. this - משמש להתייחסות למיקום המוביקליפ/משתנה מבחינת הנתיבים. במקרה שלנו יכולנו לרשום גם. root.ball._x_ על מנת להתייחס למיקום הכדור על ציר ה - X, אבל יותר נוח להשתמש במיקום יחסי (כך שאם נעביר אותו לתוך מוביקליפ אחר, לא נצטרך לשנות את הקוד על מנת שהכל יפעל.


מידע
ישנה פעולה אחת אשר קשורה במידע ונתונים:
1. Data - ביצוע פעולה מסויימת כאשר נעשה שימוש בפקודת Load Variables לתוך המוביקליפ עליו נמצאת הפקודה. פקודה זו שימושית במיוחד כאשר יש לנו כמות מידע גדולה להעלות לתוך הקובץ והיא חוסכת מאיתנו את הצורך לבצע Preloader לנתונים, בייחוד כאשר אנו צריכים לבצע פעולות הקשורות בטקסט (כמו ספירת מופעים של תו מסויים, המרה למערך וכו').




להורדת קובץ דוגמא - לחץ כאן
									בהצלחה