דילוג לתוכן הראשי

Actionscript3 ב-5 דקות - אירועים ומאזינים

כתבה זו נועדה לאילו מביניכם שמתחילים עם תכנות בפלאש, או בעלי ידע בסיסי מאד בתכנות ורוצים ללמוד יותר.
שפת התכנות היא actionscript3 ואני יודע שיש אנשים שיש להם נסיון תכנותי ב-actionscript2 ומפחדים לעבור לגירסה החדשה והמתקדמת יותר. אני בעצמי הרגשתי כך עד לפני מספר חודשים.

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

אז נתחיל עם נושא האירועים (events) ומאזינים (listeners).
יש כמות גדולה מאד של אירועים שקורים במהלך נגינה של סרטון פלאש. למשל: כניסה לפריים (מתרחש מספר פעמים בשניה, ע"פ הגדרת פריימים לשניה FPS בסרטון), הקלקת עכבר, תזוזת עכבר.
ניתן לזהות כל אחד מהאירועים בעת התרחשותו ולהצמיד לו פעולה כלשהי.

על מנת לעשות זאת יש לבצע 3 שלבים:

1.לייבא את ספריית האירועים, זאת אם אנו כותבים את הקוד שלנו בקובץ חיצוני, מחוץ לסביבת ה-Flash. לדוגמא:

import flash.events.*;
אם כותבים בתוך סביבת Flash באחד הפריימים, אז אין צורך לייבא את הספרייה הזו.

2.להכריז לאיזה אירוע אנו מעוניינים להאזין ומהי הפעולה שתקרה כשהאירוע יתרחש. לדוגמא:

stage.addEventListener(MouseEvent.MOUSE_MOVE,MouseMoveListener);

במקרה זה stage הוא האובייקט שאליו מוסיפים את המאזין ו- MouseEvent.MOUSE_MOVE זה האירוע שמאזינים לו. לעומת זאת MouseMoveListener זאת הפונקציה שלה יקרא הפלאש מיד עם התרחשות האירוע ובתוכה תהיה פעולה כלשהי, ע"פ בחירתנו. במילים אחרות, בכל פעם שיזוז העכבר מעל הבמה, תופעל הפונקציה
MouseMoveListener.

3.לכתוב את הפעולה הנדרשת. במקרה שלנו – הפעולה תוגדר בתוך הפונקציה MouseMoveListener

הנה דוגמא פשוטה, שמיישמת את 3 השלבים:
צרו MovieClip על הבמה ותנו לו שם (instance name – בתוך חלון ה-properties).
בדוגמא המצורפת יש MovieClip עם ציור של דג.


אנחנו הולכים לגרום לדג לעקוב אחרי סמן העכבר על גבי הבמה.

צרו שכבה בשם Actions, בחרו בפריים 1 ולחצו F9 כדי לפתוח את חלון עריכת הקוד.
כתבו את הקוד הבא:
import flash.events.*;


stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);


function mouseMoveListener (event:MouseEvent):void
{
fish.x=mouseX;
fish.y=mouseY;
}
זוהי הפונקציה שפועלת בזמן האירוע (תזוזת העכבר).
אנחנו מציבים את הדג בדיוק במיקום של הסמן. קודם את ציר ה-X ואח"כ את ציר ה-Y.

שימו לב שההתייחסות ל-X ו-Y תלויה בנקודת ה-registration של ה-MovieClip. בדוגמא שלנו היא נמצאת בדיוק באף של הדג, לכן האף יהיה תמיד צמוד לסמן העכבר.

את התוצאה ניתן לראות ב-SWF הבא:




















את קובץ המקור ניתן להוריד מהשרת של קודאקטיב.

תגובות

פוסטים פופולריים מהבלוג הזה

איך לבנות משחק HTML5 ב-Phaser עם Typescript - חלק 2

קבלו את החלק השני בסדרה - איך בונים משחק HTML5 ב-Phaser עם Typescript. בחלק הראשון בניתי את ה-HTML וה-CSS והורדתי את קבצי פייזר. הפעם אני בונה את ה-class הראשי של המשחק ומאתחל אותו. תהנו! לחץ כאן על מנת להוריד את קוד המקור הסופי הלינק להדרכה החינמית:  http://www.codactive.com

כלים לפיתוח משחקים בלי ידע בתכנות

מאחר ויש לי די הרבה נסיון בהדרכת תכנות למתחילים (ובפרט בתחום פיתוח משחקים) אני מתעניין כל הזמן בכלים טובים עם ערך מוסף גם לפיתוח משחקים מהיר וגם ללמידה של תכנות על הדרך. לאחרונה החלטתי לפתוח קורס\חוג מקומי לנוער שילמד פיתוח משחקים לחסרי נסיון, או בעלי נסיון בסיסי בתכנות וזה הוביל אותי לבדוק באופן יותר מעמיק אילו כלים קיימים כרגע שעשויים לתמוך בקורס כזה. אחד הקריטריונים החשובים לדעתי בבחינת כלים כאלה היא עד כמה אפשרי ונוח ליצור באמצעותם משחקי HTML5 שאפשר בקלות לפרסם באתר עצמאי, או באתרי מפיצים, כי לשם אני מאמין שהתעשיה הולכת. לכן, קודם כל הלכתי וחיפשתי רשימת השוואה למנועי משחק שמאפשרים ליצור משחקי HTML5 והגעתי לרשימה הזאת. אפשר לראות כאן גם frameworks כמו Phaser, שמאפשרות בניית משחק ע"י תכנות בלבד וגם כלים כמו Construct 2 שלא מצריכות ידע בתכנות בכלל ונותנות ממשק גרפי עם אפשרויות בחירה והזנת פרמטרים מסוגים שונים על מנת להגיע לאותן תוצאות. מנסיוני יש 2 אסכולות של מפתחים: 1. כאלה שבאו מרקע של תכנות פרופר (מדעי המחשב) - מעדיפים לתכנת הכל באמצעות עורכי קוד למיניהם...

קונסטרקט 3 - הכלי הכי אפקטיבי שאני מכיר לפיתוח משחקים קטנים-בינוניים

את הפוסט הקודם (על Stencyl) כתבתי לפני כמעט שנה ומאז עברתי לעבוד עם Construct 3 שפתר לי 2 בעיות משמעותיות: רספונסיביות וזמן להגיע לתוצאה. בנוסף, יש לקונסטרקט המון מדריכים באינטרנט, קהילת משתמשים גדולה ופעילה ועדכונים שוטפים בתדירות מרשימה. מהר מאד התחלתי לפתח משחקים בקונסטרקט וזה פשוט כיף גדול להבין שבמקום להשקיע כמה שבועות בכתיבת קוד אפשר להגיע לאותה תוצאה בכמה ימים בלי לכתוב שום קוד ורק להתרכז ביצירה עצמה. האמת היא שכל כך התלהבתי מהפשטות שבתוכנה, שהחלטתי לפתוח קורס לפיתוח משחקים בקונסטרקט והיום אני מעביר הדרכות פיזית ב-2 כיתות לתלמידים שהצטרפו לקורס שמתקיים בגדרה. במקביל אני ממשיך לפתח משחקים בקונסטרקט בשעות הפנאי ונהנה מכל רגע. בשלב הבא אני מתכנן לפתוח קורס אינטרנטי בקונסטרקט, כך שכל אחד שרוצה יוכל לפתח משחקים, אבל בינתיים עד שזה יקרה, אני רוצה לפרסם הדרכות קצרות מדי פעם שיתנו לכם טעימה מתוך החוויה של פיתוח בקונסטרקט. בהדרכה  הזאת אציג בקצרה את התוכנה - איך מגיעים אליה ומתחילים לעבוד איתה. בהדרכות הבאות אציג דוגמאות קצרות של עבודה עם התוכנה כחלק מתהליך בניית משחק...