SCOPING בפלאש הוא מונח שמתאר את הפניה שלנו לאובייקטים שונים בסרטון באמצעות AS (דוגמא טובה לאובייקט זה MC, או BUTTON).

פלאש מאפשר לנו לפנות לאובייקטים שנמצאים בTIMELINES שונים באמצעות מספר "קידומות" (TIMELINE = ציר הזמן, לכל אובייקט יש ציר זמן משלו).

כדי להפנות פקודה לציר זמן הראשי (כלומר שהיא תחול על הTIMELINE הראשי של הסרטון) נשתמש בקידומת "ROOT" (תרגום חופשי: שורש) לפני הפקודה שלנו בצורה כזאת:

קוד
_root.my_action


(שמים מכף תחתון לפני קידומות)

במקום my_action אפשר לשים כל פקודה שתרצו, וזכרו שהיא תפעל על הציר זמן הראשי של הסרטון שלכם (שהוא הציר שרואים כשפותחים סרטון חדש).

דוגמא לשימוש בקידומת ROOT:

נניח ויצרתי MC, ובתוכו יש כפתור (כלומר הMC מורכב מכפתור).

אני רוצה שבלחיצה על הכפתור, הסרטון שלי יעבור לפריים השני (כמובן שנשתמש בGOTOANDPLAY), את הפקודות הבאות אני ישים בACTIONS של הכפתור שבתוך הMC:

קוד
on (release) {
_root.gotoAndPlay(2);
}


וזהו, סיימתי.

נעבור ל"קידומת" הבאה:

"PARENT" (תרגום חופשי - הורה)

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

דוגמא:

יצרתי MC, ושמתי את הפקודה הבאה:

קוד
onClipEvent(load) {
_parent.gotoAndPlay(2);
}


ניחשתם? הפקודה תחול על הTIMELINE הראשי של הסרטון בגלל שהוא ה"אבא" של הMC שיצרתי.

אם תהיתם לגבי השאלה: "מה אז ROOT בדיוק כמו PARENT??" אז התשובה היא לא.

הנה דוגמא שתוכיח את התשובה:

נניח שיצרתי MC, ובתוכו יצרתי כפתור.

אם נכתוב קוד בכפתור וניתן לו קידומת ROOT, אז הקוד יפעל על הTIMELINE הראשי, אך אם נכתוב קידומת PARENT, הקוד יפעל על הTIMELINE של האבא של הכפתור....מי הוא האבא של הכפתור? ניחשתם נכון - הMC. ולכן קידומת PARENT תגרום לקוד לרוץ על הTIMELINE של הMC.


נעבור לקידומת השלישית: "GOBAL" (תרגום חופשי - גלובלי)

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

קוד
_global.myname = "yotam";


המשתנה myname יהפוך להיות גלובלי ויהיה מוכר לפלאש בכל פריים בסרטון ובכל TIMELINE בסרטון (בשונה ממשתנים רגילים שקיימים רק בפריים מסויים או בTIMELINE מסויים).

ולקידומת האחרונה (והכי מיותרת) "THIS" (תרגום חופשי - זה)

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

ואם אתם מתעקשים לכתוב THIS לפני כל פעולה סתם בשביל הכיף, אז ככה כותבים:

קוד
this.my_action;


בלי מכף.