|
מטרת השיעור
להסביר על סוגי המשתנים השונים, וכיצד משתמשים בהם. השיעור מתייחס לפלאש 5.
ידע קודם - לא נדרש. משתנים הם שמות זמניים שאנו נותנים למידע שברצוננו לשמור - אם מדובר במספרים או בטקסטים. בפלאש אין צורך להכריז מראש על אופי המשתנה (האם הוא יחזיק מספר או טקסט) ולכן אפשר להחליף את התוכן שהמשתנה מחזיק בכל זמן שאנו רוצים. הגדרת משתנים: על מנת להגדיר משתנה בפלאש 5 עלינו לבחור בפקודה setVariable שבתפריט Actions:
בחירת הפקודה יוצרת משוואה בין שם המשתנה - Variable לבין הערך שלו - Value. לדוגמא: word="hello"; hello שמכיל את הטקסט word יצירת משתנה בשם num=3; 3 שמכיל את המספר num יצירת משתנה בשםשם המשתנה (הצד השמאלי במשוואה) יכול להכיל כל מה שנרצה, כל עוד אנחנו לא משתמשים במילים "שמורות" של פלאש (מילים אשר מוכרות כפקודות) ומשתמשים באותיות ומספרים. פלאש לא מבחין בין אותיות קטנות לגדולות - אם נקרא למשתנה שלנו word ולאחר מכן נתייחס אליו כ - WORD, לא תהיה עם זה שום בעיה. הצד הימני במשוואה, אשר מכיל את הערך של המשתנה יכול להכיל כל מה שנרצה - טקסט, מספר או ביטוי (expression) שמורכב מפעולות חשבון, פעולות על טקסט או פעולות שמשתמשות במשתנים אחר. על מנת להגדיר את הערך כביטוי עלינו לסמן את תיבת הסימון שנמצאת ליד השדה Value. לדוגמא:
A=2; B=3; C=2+3; בעזרת חישוב פשוט C השמת הערך 5 למשתנה D=A+B; A,B בעזרת שימוש במשתנים D השמת הערך 5 למשתנה E=A+2; A בעזרת חישוב שמשתמש במשתנה E השמת הערך 5 למשתנהיש לשים לב להבדלים בין סוגי הערכים (טקסט או מספר) - בדוגמא הבאה הערך של המשתנה הראשון נמצא בתוך מרכאות, מה שמגדיר אותו כטקסט. לעומתו, המשתנה השני מכיל ערך מספרי, ללא מרכאות. פלאש לא מבחין בין מספר במרכאות לבין מספר אמיתי ולכן כאשר ננסה לבצע פעולות שמשלבות טקסט ומספרים, ההתייחסות למספרים תהיה כאל טקסטים בלבד. לדוגמא: A="2"; "מכיל את הטקסט "2 A B=3; מכיל את המספר 2 B C=A+B; "שווה לטקסט "23 C D="A"+B; "A3" שווה לטקסט D E="A"+3; "A3" שווה לטקסט Eניתן לשלב טקסטים פשוטים (ולא ערכים של משתנים) בתוך הביטוי, כמו במשתנים D ו - E בדוגמא שלמעלה. הסימן + משותף לטקסטים ולמספרים והוא יבצע חיבור טקסטים או חיבור פשוט (לפי הערכים שניתן לו), אך שאר פעולות החשבון (חיסור, כפל וחילוק) יבצעו את הפעולה הרגילה שלהם אם נספק להם מספרים - גם אם הם בתוך מרכאות. למרות זאת, רצוי לשם עבודה נכונה להגדיר את המשתנים לפי השימוש האמיתי שלהם. |
|
שימוש במשתנים ניתן להשתמש במשתנים בכל מקום בו ניתן להשתמש בתכנות - בכפתור (פקודות שתלויות במשתמש), על ציר הזמן (פקודות מתוזמנות) או במסגרת פקודת onClipEvent (פקודות תלויות במשתמש או בתזמון - שיעור נפרד קיים לנושא זה). |
|
אין הבדל בין קריאת ערכים והשמה לתוך שדות טקסט (דינמי או שדות קלט) - מה שנותן לנו את האפשרות לשלב בין השניים ללא בעיה. בדוגמא המצורפת יש לנו 2 שדות קלט על הבמה, name ו - birth, שבתוכם נרשום שם ושנת לידה. משתנה נוסף שהגדרנו הוא today שקיבל את הערך המספרי 2001. המשתנה today הוגדר בפריים 1 - כלומר שהגדרתו תלויה בציר הזמן של הסרט - ברגע שהסרט יגיע לפריים 1 (במקרה הזה, כבר בהתחלה), יוגדר המשתנה today ללא תלות במשתמש. ניתן להגדיר משתנים בכל קיפריים על ציר הזמן, ע"י סימון הקיפריים וכתיבה בחלון ה - Actions. כמו כן,על הבמה נמצא טקסט דינמי (טקסט שיכול לשנות את תוכנו לפי תכנות אבל המשתמש לא יכול לרשום בתוכו). ניתן לאפיין טקסט כטקסט דינמי או כשדה קלט במאפייני הטקסט - מתפריט Window, בוחרים Panels ולאחר מכן Text options. השדות המוקפים במסגרת אדומה הם סוג הטקסט (שם ניתן לבחור input על מנת להגדיר את הטקסט כשדה קלט) וגם את שם השדה, שמבחינתנו הוא שם המשתנה.
הכפתור שנמצא על הבמה מבצע את פעולת ההשמה לתוך השדה הדינמי, תוך כדי שאיבת הנתונים מהמשתנים האחרים (name,age,today) שנמצאים כולם באותו ציר זמן (של הבמה הראשית), יוצא דופן הוא waitTime שנמצא בתוך מוביקליפ אחר (waitMC) ולכן צריך להוסיף לו קידומת שתקשר אותנו לציר הזמן שלו.
on (release){
age = today-birth;
result = "Hello " + name + ", you are " + age + " years old";
_root.waitMC.waitTime = 0;
}
יש לישם לב שאם יוזן טקסט לשדה הגיל, נקבל את הערך NaN בתוך שדה התוצאה שמשמעותו Not A Number וזו התוצאה של פעולת החיסור שלא מתאפשרת בין מספר לטקסט. משתנים וצירי זמן שונים כל משתנה מכיר את שאר המשתנים הנמצאים באותו ציר זמן שבו הוא נמצא , ללא צורך בקידומות. בדיוק באותו אופן שאנו חייבים לרשום קידומת על מנת להתייחס למוביקליפ שנמצא בתוך מוביקליפ אחר, כך גם כאן - הקידומת root_ מסמנת את ציר הזמן הראשי, של הבמה הראשית - הרמה הגבוהה ביותר. ניתן גם להשתמש בקידומת level0_ המוכרת מפלאש 4, או level1_ וכד' בשביל רמות גבוהות יותר. אחרי root_, נרשום את שם המוביקליפ המכיל את המשתנה - waitMC בדוגמא שלנו, כאשר נקודה מפרידה בינהם ולאחר מכן את שם המשתנה (גם מופרד ע"י נקודה) וכך נקבל את הנתיב המלא root.waitMC.waitTime_ - בדרך זו נוכל לתקשר איתו ולהזין לתוכו ערכים. ניתן גם להשתמש בנתיבים יחסיים בעזרת הקידומת parent_ שפירושה "כל הנתיב עד לציר הזמן זה", כך שאם אנחנו רוצים לגשת למשתנה שנמצא ברמה העליונה יותר מהמוביקליפ שלנו, נוכל לרשום את הקידומת parent_ ולאחריה שם המשתנה על מנת לגשת אליו. |
|
להורדת קובץ דוגמא - לחץ כאן בהצלחה |