ארכיון

ארכיון לקטגוריה ‘Flash Player 10’

Flex SDK 3.4 + עדכון אבטחה

20 אוגוסט, 2009 gadi_sr אין תגובות

גרסה יציבה חדשה של Flex SDK הכוללת תיקוני באגים וטיפול בבעיית אבטחה יצאה היום.

באגים שתוקנו

עדכון אבטחה

לינק להורדת Flex SDK

להסבר כיצד לעדכן SDK לפלאש ול-Flex

  • Share/Save/Bookmark
קטגוריות:Flash CS4, Flash Player 10, Flex, פיתוח פלאש תגיות:,

Google קונה את On2 ב-106M$

6 אוגוסט, 2009 gadi_sr תגובה אחת

את חדשות היום אתם ודאי כבר יודעים. Google קונה את On2 technologies האחראים על Flix בגרסאותיו השונות (Live, Engine, DirectShow SDK וכו') וגם מחזיקה ב-IP של VP6, ה-encoder שכנראה שינה את הדרך בה רואים וידאו באינטרנט. כיום הוא מוטמע כ-decoder בפלאש אבל לא כ-encoder (בו משתמשים כיום ב-Sorenson Spark).

המחיר נמוך יחסית כמובן, לעומת הפוטנציאל הטמון ברכישה. לגבי השינויים הצפויים אני מניח ש:

- Google יטמיעו את הקודקים של הוידאו ב-Google talk
- יכולים להכריז על de facto סטנדרט חדש של encoder שיהיה מוטמע ב-chrom
- אם הם ישחררו חלק מה-codecs אולי נראה VP6 encoder ב-Flash player (???)
- סטנדרט חדש של codec ל-HTML5 (???)

מבחר כתבות בנושא:

Press Release

TechCrunch

On2

Twitter

  • Share/Save/Bookmark
קטגוריות:Flash Player 10, כללי, מולטימדיה תגיות:, ,

עדכונים לפלאש ול-AIR

2 אוגוסט, 2009 gadi_sr אין תגובות
קטגוריות:AIR, Flash Player 10 תגיות:

באג: קליק ימני + settings על פלאש לא עובד בחלק מהדפדפנים

30 יוני, 2009 gadi_sr תגובה אחת

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

הבאג: קליק ימני על סרט פלאש מציג את settings (בחירת מצלמה/מיקרופון/sol) במצב disable על דפדפני iceweasel על debian, ודווח גם על בעיות ב-ubuntu (ב-ff 3.5 החדש הבעיה נפתרה כנראה)

הסיבה: לא ברור

פתרון אפשרי: הבעיה מתרחשת ספציפית במצב שהוא wmode של tranparent/opaque, שימוש ב-wmode=window יפתור את הבעיה (אבל כמובן שייצור בעיות אחרות אפשריות)

  • Share/Save/Bookmark
קטגוריות:Flash Player 10, כללי, מולטימדיה תגיות:,

Flash Player 10 - 87%

27 יוני, 2009 gadi_sr אין תגובות

גרסה 10 של Adobe Flash Player שוברת שיאים ומגיעה אחרי 8 חודשים בלבד ל-87% מהמחשבים. גרסה 10 שהושקה באוקטובר האחרון מכילה שיפורים ברמת ביצועים, תמיכה בתלת מימד גנרי, תמיכה ב-H264 וב-Dynamic Streaming, יכולות P2P (עוד לא בשלבי production בצד השרת, אבל בקרוב..), יכולת אינטגרציה ב-runtime עם Pixel Bender וספריות C/C++ (Alchemy) ועוד.

Flash Penetration

  • Share/Save/Bookmark

AS3 Facebook API 2

11 אפריל, 2009 gadi_sr 2 תגובות

אז עובדים עם ה-AS3 Facebook API החדש? מה יש ומה עדיין חסר?
נתחיל בדברים הטובים: קל לעבוד עם הספריה. אמנם הדוגמאות שבאות איתה מגיעות רק כ-Flex אבל אין בעיה לעבור גם לפלאש וגם לאפליקציות AIR עם שמירה על העקרונות שמצויינים.
אז איך זה עובד:

השלב הראשון הוא יצירת session של Facebook. ניתן ליצור מספר סוגים של Session.
WebSession- חיבור על ידי אפליקציית פלאש דרך עמוד אינטרנט
DesktopSession- חיבור ל-Facebook באמצעות אפליקציית AIR
JSSession - שימוש ב-bridge של Javascript לחיבור ל-Facebook.
כאן אני אשתמש ב-DesktopSession להדגמה.

השלב השני הוא חיבור המשתמש לאפליקציית Facebook שנועדה להיות ה-backend של אפליקציית הפלאש, פעולת login של המשתמש ל-Facebook אם אין לו session פתוח כבר, ואישור שימוש באפליקצייה, אם לא אושרה עדיין. אם יש אישור המשתמש מקבל חלון שאומר שהוא מחובר והוא ניתן לסגירה ולעבודה מול האפליקציה בלבד מכאן ולהבא.
יצירת האפליקצייה היא באמצעות אפליקציית developer ב-Facebook, שם ניתן ליצור שפליקציות ושם גם מקבלים שני קודים לשימוש. קוד ל-API וקוד סודי לחיבור של האפליקציה. בשניהם יש צורך על מנת לבצע את החיבור הראשוני של השלב הראשון.

חיבור שני השלבים נראה כך:

fb = new Facebook();
desktopSession = new DesktopSession(API_KEY, SECRET_KEY);

//Start the session with Facebook
fb.startSession(desktopSession);

//login to client session
fb.login(false);

בשלב הזה נפתח חלון ה-html לחיבור לאפליקציה, ומתבצע החיבור. באותו הזמן נזרק Event מסוג FacebookEvent.WAITING_FOR_LOGIN. והנה הבעיה הראשונה: אין אישור login לאחר החיבור. ניתן להבין את זה, מכיוון שהדבר מצריך תקשורת בין עמוד ה-html שנפתח לאפליקציה, וניתן לקיים את זה רק אם קיים bridge בין הפלאש ל-javascript. במקרה כמו שלנו שבו האפליקצייה היא AS3 נטו, אין תקשורת כזו. איך פותרים בעיה זו? באמצעות הפונקציה refreshSession, שבמקרה שיש התחברות, האובייקט Facebook יזרוק את ה-Event הבא: FacebookEvent.CONNECT.
וזה נראה כך (בהמשך לקוד למעלה):

fb.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, onWaitingForLogin);
fb.addEventListener(FacebookEvent.CONNECT, onFacebookConnect);

private function onWaitingForLogin(evt:FacebookEvent):void
{
	connectionIv = setInterval(function():void
	{
		fb.refreshSession();
	}, 1000);
}

private function onFacebookConnect(evt:FacebookEvent):void
{
	clearInterval(connectionIv);
	//do something after connection
}

אחרי שיש חיבור ניתן לבצע כל פעולה שקשורה במשתמש, הדוגמא כאן תהיה קבלת רשימת ה-facebook id של כל החברים שלו. עבור כל אובייקט שליחה של בקשה יש אובייקט שיודע לקבל אותה ואת פורמט המידע שנמצא בתוכו, במקרה שלנו שני האובייקטים הם: GetFriends ו-GetFriendsData.

השלב הראשון הוא שליחת הבקשה, בשביל זה אנחנו משתמשים באובייקט BatchCollection מהספריה של ה-API שמאפשר לשלוח מספר בקשות במקביל, אנחנו נעשה זאת עם בקשה אחת:

private function getFriendsList():void
{
	var batch:BatchCollection = new BatchCollection();
	batch.addItem(new GetFriends());

	var batchRun:BatchRun = fb.post(new BatchRun(batch)) as BatchRun;
	batchRun.addEventListener(FacebookEvent.COMPLETE, handleComplete);

	function handleComplete(evt:FacebookEvent):void
	{
		var results:Array = (evt.data as BatchResult).results;
		var gfd:GetFriendsData = results[0] as GetFriendsData;
	}

}

בשלב הזה אובייקט gfd מכיל אבייקט בשם friends שמכיל רשימת אובייקטים שבכל אחד מהם נמצא משתנה בשם uid שמכיל את ה-id של החבר ב-Facebook. כך רצים על הרשימה:

for (var i:int = 0; i < gfd.friends.length; i++)
{
	trace(gfd.friends.getItemAt(i).uid
}

לאחר מכן ניתן להשתמש באובייקטים מסוג GetInfo וכו' על מנת למצוא פרטים נוספים על כל אחד מהחברים, למשוך תמונות וכו' אבל זה הבסיס… בהצלחה

  • Share/Save/Bookmark
קטגוריות:AIR, Flash CS4, Flash Player 10, Flex, כללי תגיות:,

Save Image As for Flash

10 אפריל, 2009 gadi_sr 4 תגובות

So this post is in English for a global usage, since it relevant to much wider audience.
One of the things not implemented in swf files is the ability to right-click an image and download it to a specific library just as done in HTML pages. this ability is very nice-to-have and there are no technology barrirers (except issue that I will mention later) for most of the standard functionality.

My goal was to create a menu similar to HTML Image right-click menu with the following functionality:

1. View Image - open the image in external window/tab
2. Copy Image - copy image content to clipboard for paste in paint etc.
3. Copy Image Location - copy url to clipboard for paste in browser address bar
4. Save Image As - open browse window to save image locally.

I couldn't manage to do 2. since flash access to clipboard is for string data only, although maybe using Alchemy might solve this issue, so data will be delivered to clipboard by C/C++ code, you are most welcome to try.

View Image mission was accomplished by using Loader.contentLoaderInfo.url as path to the image. Copy Image part was made by setting clipboard data as the same url of the previous part and Save Image as has done using 2 steps:

1. Creating encoded data as PNG/JPG using standard Adobe libraries for encoding
2. Using FP 10 FileReference.save ability to save data from byteArray created by the application on the client Desktop without requiring server side scripting development.

The Implementation class is a Decorator for Loader Class and use in the following manner:

import il.flashdev.common.Downloadable;

var loader:Loader = new Loader();
loader.load(new URLRequest(myImagePath));
addChild(loader);
loader = new Downloadble(loader);

here is the result:

download example

Parameters available for the Downloadable constructor:
loader:Loader - Loader instance
viewImageItem:Boolean - should display View Image in Context menu
copyImageLocationItem:Boolean - should display Copy Image Location in Context menu
saveImageAsItem:Boolean - should display Save Image As in Context menu
imageFormat:String - in case not mentioned in Loader object, what is the image format to be saved
imageName:String - in case not mentioned in Loader object, what is the image name to be saved

defaults are: new Downloadable(loader, true, true, true, "", "");

you can use swc files here, or from inside fla

enjoy

  • Share/Save/Bookmark

באג ב-IE8 בשימוש ב-ExternalInterface

29 מרץ, 2009 gadi_sr תגובה אחת

הגרסא שיצאה לא מזמן של IE8 יוצרת בעיה בשימוש ב-ExternalInterface class.

התרחיש שיוצר את הבעיה הוא:

1. טעינת סרט פלאש
2. טעינת סרט אחר לתוכו שמשתמש ב-ExternalInterface.

התוצאה: script error ב-ie8 כולל הצבעה על add_callback בספריות של JScript כבעיה.

פתרון אפשרי: יצירת class מעטפת ל-ExternalInterface שמממש את ה-addCallback על ה-Loader שלו. כמובן שזה יכול ליצור בעיית security וחשיפה של הקוד הנטען לקוד הטוען…

אוקיי, לא לשכוח, IE8 עדיין ב-beta. תהיו אופטימיים, הרי זה מיקרוסופט לא?

  • Share/Save/Bookmark
קטגוריות:Flash CS4, Flash Player, Flash Player 10, IE8, כללי תגיות:

שימוש ב-FileReference במידע לוקאלי ב-FP10

18 מרץ, 2009 gadi_sr אין תגובות

עד היום, בפלאש 9 היה ניתן להעלות קבצים לשרת באמצעות FileReference אבל ניתנה אליהם גישה מצומצמת מאוד, שאיפשרה רק לקרוא את של הקובץ שמעלים לשרת ותו לא. גישה כזו באה מטעמי Security כך שלא ניתן יהיה לפלאש לשנות את מאפייני הקובץ לפני שהוא עולה לשרת, אבל ישנם הרבה מקרים בהם נרצה להשתמש במידע הזה בצד הלקוח ורק לאחר מכן להעלות אותו לשרת. לדוגמא: העלאת תמונת פרופיל שנותנת ללקוח לעשות preview לפני שמירה על השרת. החסכון הוא כמובן כפול, מצד אחד הזמן שלוקח ללקוח לראות את התמונה הוא מינימלי, מאחר שהפעולה מתבצעת בצד שלו, ומצד שני אין צורך בניהול קבצים זמניים בצד השרת.

פונקציה חדשה בשם load לאובייקט FileReference מאפשרת לטעון את המידע לצד ה-client לתוך אובייקט byteArray לשימוש על ידי ה-player. הגודל הרשמי שנתמך על ידי הפלאש הוא 100MB. כאשר הפונקציה מופעלת ב-Flash player חייבת לבוא לפניה פונקציית Browse של FileReference, מה שלא צריך כאשר מדובר באפליקציית AIR.

ישנם מספר סוגי Events שיכולים להתרחש תוך כדי הטעינה:

open- תחילת טעינה
progress- תוך כדי תהליך הטעינה (ניתן להוציא כמה מתוך כמה נטען)
complete- סיום טעינה
ioerror - שגיאה ב-IO תוך כדי טעינה

בנוסף יכולות להיות שתי שגיאות חיצוניות:
IllegalOperationError - פתוח חלון browse במקביל או שיש בעיה בהרשאות תקשורת
Memory- הקובץ גדול מדי או הקצאת הזכרון אינה מספיקה.

ולעסק…

והקוד

מאפיין data של ה-fileReference מכיל byteArray שניתן לשימוש על ידי אובייקט כדוגמת Loader, Sound וכדו'

אחלה פיצ'ר :)

  • Share/Save/Bookmark