|
מטרת השיעור -
בשיעור זה נלמד כיצד יוצרים מערכים בפלאש 5, איך עובדים איתם וכיצד ניתן להשתמש בהם.
ידע נדרש - עבודה עם משתנים |
|
מהו מערך? מערכים הם סוג של משתנים המכילים סדרה של ערכים בתוכם - ניתן להשוות את המערך לספר, כאשר כל עמוד בו מכיל מידע וכל העמודים ממוספרים, כך שיש לנו גישה ישירה לכל עמוד בספר - ניתן לתלוש עמודים, לסדרם מחדש בסדר אחר, לקרוא את כולם ברצף לעמוד אחד ארוך וכו'. כיצד יוצרים מערך? מערך הוא למעשה משתנה שהוגדר מראש כאובייקט מסוג מערך. בדוגמא המצורפת, קראתי למערך בשם myArray והגדרתי אותו בפריים הראשון של הסרט. בשורה הבאה אנו מגדירים את המשתנה myArray כאובייקט חדש מסוג "מערך", ומזינים לתוכו 4 ערכים מראש. את האובייקט Array ואת כל הפעולות שניתן לבצע עליו, ניתן למצוא תחת תפריט האובייקטים בתפריט הפקודות.
myArray = new Array("one","two","three","four" );
![]() ניתן גם להגדיר מראש מערך ללא שום נתונים (בלי כלום בתוך הסוגריים), ולהוסיף או לשנות ערכים בתאים מסויימים לאחר מכן, על ידי כתיבת מספר התא המבוקש בתוך סוגריים מרובעים (כאשר את ספירת התאים מתחילים מ - 0). myArray[3]="three";איזה פעולות ניתן לבצע עם מערכים? בדוגמא המצורפת, הגדרתי מערך בשם myArray, כאשר בתוכו 4 ערכים ראשוניים - כל הדוגמאות יבוצעו על מערך זה. למעט length שמהווה תכונה של מערך, כל שאר הפעולות הן מתודות (methods) - פעולות עצמאיות שמבצעות את התפקיד שלהן בקריאה בלבד, ללא צורך בהשוואה לערך מסויים - בדומה להבדל בין gotoAndPlay שנרשם באופן עצמאי ולא בתוך משוואה, אך ניתן להשתמש בהן גם בתוך משוואה. בדוגמא המצורפת, יש דוגמאות לשתי שיטות הכתיבה. length - מחזיר את אורך המערך - כמות הערכים שהוא מכיל נכון לעכשיו, כאשר הספירה מתחילה מ - 0 (שימושי מאוד לריצה על כל אברי המערך בעזרת לולאות). דוגמא:
counter=myArray.length; מחזיר את אורך המערך
()pop -
מוחק את האיבר האחרון במערך ומחזיר את הערך שלו. ניתן להשתמש בו כחלק ממשוואה היות והשימוש בו מחזיר את שם הערך שנמחק, אך אפשר גם להשתמש בו לבד, כביטוי (אם אין לנו צורך לדעת מה הערך שנמחק). דוגמא:
wasLastAndDeleted=myArray.pop();
או
myArray.pop();
()push - מזין ערכים חדשים למערך ומחזיר את האורך החדש של המערך. כמו pop, ניתן להשתמש בו בשתי הדרכים. דוגמא:
newArrayLength=myArray.push("text","or","number",3);
או
myArray.push("text","or","number",3);
()slice - פקודה זו מעתיקה תחום של איברים מהמערך ושומרת אותם כמערך אחר. יש צורך להעביר מספר תא להתחלה ומספר תא לסיום החיתוך. דוגמא: newArray=myArray.slice(startCellNumber,endCellNumber)()splice - פקודה זו דומה לקודמת, אך היא גוזרת את האיברים בתחום שסימנו, מכניסה פנימה את הערכים שבסוגריים (אם ציינו ערכים) החל מנקודת הגזירה ומחזירה את הערכים שנגזרו. הבדל נוסף הוא בפרמטרים של הפקודה - כאן אנו מגדירים תא להתחלת המחיקה וכמות תאים למחיקה (ולא תא לסיום). דוגמא: myArray.Splice(startNumber,lengthToDel,"text","or","number",3); ()shift - בדומה ל - pop, פקודה זו מוחקת את האיבר הראשון במערך ומחזירה את הערך שלו. ניתן להשתמש בה גם במשוואה וגם באופן עצמאי. דוגמא: wasFirst=myArray.shift() או myArray.shift() ()unshift - פקודה זו דוחפת ערכים חדשים לתחילת המערך ומחזירה את האורך החדש שלו. דוגמא:
newArrayLength=myArray.unshift("text","or","number",2);
או
myArray.unshift("text","or","number",2);
()reverse -
הופך את הסדר של המערך.
דוגמא:
myArray=myArray.reverse(); ()toString - פקודה זו ממירה את המערך לטקסט רגיל עם פסיק מפריד בין הערכים. דוגמא: myArray=myArray.toString();()concat - בדומה ל - push, פקודה זו משרשרת למערך איברים נוספים בסופו, אך פקודה זו יכולה לשרשר מערך והערך שהיא מחזירה הוא המערך החדש. דוגמא: myArray=myArray.concat(anotherArrayName,"someText"); ()sort - מיון המערך ע"י שימוש בפרמטר "1" לסדר עולה (ברירת המחדל, גם אם לא רשום כלום בין הסוגריים), או "1-" על מנת למיין את המערך בסדר יורד. ()join - מציג את המערך כטקסט רציף כאשר ניתן לקבוע את הסימן שיפריד בין האובייקטים בטקסט שנקבל.
newString=myArray.join("&") מציג את הסימן & בין כל ערך
כיצד ניתן להשתמש במערכים? כדאי להשתמש במערכים במידה ויש צורך בבדיקת כמות גדולה של משתנים שקשורים אחד בשני. לדוגמא, אם אנו מנהלים רשימת קשר המכילה שם, טלפון וכתובת, נוכל לשמור את כל הנתונים במערך ולשלוף נתונים מתאימים בחתכים מסויימים לפי הצורך. כל רשימה מכל סוג שהיא תהיה נוחה יותר לניהול באמצעות שימוש במערכים (מאשר במשתנים רגילים). שימוש נוסף הוא במשחקים: משחק כמו שחמט, מחייב לשמור את המצב על לוח המשחק בכל רגע נתון, כאשר אנו צריכים לדעת אם כל ריבוע על הלוח תפוס או לא, ואם הוא תפוס אז על ידי איזה סוג שחקן. חישובים מסוג זה אידיאליים לעבודה עם מערך, שיכול לשמור את שמות השחקנים על הלוח במערך של 64 מקומות. ניתן לחקות את הפעולה בעזרת שדה טקסט אחד, אך הרבה יותר נוח לעבוד עם מערך, כאשר יש לנו גישה נוחה לכל ריבוע על לוח המשחק (שמיוצג במערך על ידי תא בודד). שיטת עבודה זו חוזרת על עצמה בהרבה משחקים שבהם אנחנו צריכים לשמור מיקום של שחקנים או אובייקטים על לוח שמחולק בצורה מסויימת. |
|
להורדת קובץ דוגמא - לחץ כאן בהצלחה |