וידאו ב-ActionScript 3 | אינטרנט ישראל
ראשי » מדריכים » לימוד Action Script 3 ו-פלאש » וידאו ב-ActionScript 3
וידאו ב-ActionScript 3
רן בר-זיק אוגוסט 11, 2009 9:03 am אין תגובות
מאמר המסביר כיצד ליצור וידאו בסיסי בפלאש.
המאמר הקודם במדריך ה-AS3אודיו עם ActionScript 3
המאמר הבא במדריך ה-AS3יצירת SWC עם פלאש
במאמר הקודם למדנו על אודיו ב-ActionScript 3. הצגת וידאו בפלאש אינה שונה באופן מהותי מהצגת אודיו. ישנן שתי דרכים להצגת וידאו בפלאש – כ-stream בעזרת flash media server וכהדמיה של stream למי שאין להם גישה ל-flash media server (רוב העולם). אנו נראה הצגת וידאו בדרך השניה.
לשם דוגמא אני אשתמש באותו נגן שהשתמשתי בו במאמר הקודם עם אותם כפתורים – לנגן, לעצור ולשנות את רמת הקול.
על מנת לאפשר וידאו, אני צריך ליצור כמה אובייקטים. הראשון שבהם הוא אובייקט וידאו שהוא די מתבקש. האובייקט השני הוא netconnection שמאפשר את החיבור בין ה-flv שלנו לפלאש. האובייקט השלישי והחשוב מכולם הוא netstream, זה שיוצר את ההדמיה של הסטרימינג ואליו אנו מתייחסים בכל פעולותנו. אובייקט חשוב נוסף הוא קליינט שיאפשר לנו להצמיד אליו מאזינים כדי לנטר את הוידאו. הקליינט הוא חובה ואם הוא לא יהיה קיים יהיו בעיות. אובייקט אחרון הוא אובייקט SoundTransform שמאפשר לנו, בדומה לאודיו, לשלוט על עוצמות הקול ומאפיינים נוספים של האודיו שצמוד לוידאו.
היצירה של האובייקטים האלו פשוטה:
private var myVideo:Video = new Video();
private var customClient:Object = new Object();
private var videoVolumeTransform:SoundTransform = new SoundTransform();
עכשיו, יש צורך ביצירת הוידאו ממש. אנו יוצרים את netconnection ומעבירים בתוכו null (כיוון שאין לנו קשר סטרימינג אמיתי). אחרי כן יוצרים את ה-netstream ומעבירים בתוכו כפרמטר את ה-netconnection. את הקליינט שלנו אנו מגדירים כתכונת client של ה-netstream ולבסוף אנו משתמשים במתודת attachNetStream על מנת להצמיד את ה-netstream שלנו לאובייקט הוידאו. כך זה נראה:
נותר רק לטפל במאזינים של הקליינט. הם אחראים לקבל את המטא-דאטה ואת האירועים השונים. מדובר במאזינים מנדטוריים שאם הם לא יתקיימו יהיו בעיות.
אלו המאזינים:
הפונקציות המינימליות שצריך על מנת שיפעלו הן:
לבסוף יש להצמיד את הוידאו ל-stage או לכל אובייקט אחר כמו movieClip. בדוגמא שלי אני פשוט מצמיד אותו ל-stage עם:
myStage.addChild(myVideo);
ההפעלה של הקובץ פשוטה ואנו מציבים אותה בפונקציה שמופעלת עם הקליק. היא נראית כך:
ns.play("http://www.internet-israel.com/internet_files/flash/helmsdeep.flv");
כאשר ה-URL הוא קובץ flv. במקרה הזה מדובר בסרט שאני הכנתי לפני שנים וזכויות היוצרים עליו שייכות לי.
הקוד המלא נראה כך:
public class myVideoPlayer
public function myVideoPlayer(myStage)
m_animSprite.graphics.drawRect(startingX, 300, 50, 50);
myTextField.y = 300;
videoVolumeTransform.volume = 0;
ns.soundTransform = videoVolumeTransform;
videoVolumeTransform.volume = 1;
יש עוד לא מעט דברים לעשות עם וידאו, אך זהו הבסיס שקל להתפתח ממנו הלאה – בזכות הדוקומנטציה.
במאמר הבא והאחרון בסדרה, אנו נלמד על SWC – דרך לשמור על האובייקטים שאתה יוצר בפלאש.