ארכיון

ארכיון של מאי, 2009

באג: MouseEvent.Mouse_UP זורק שגיאה בקומפוננטות scrollable

31 מאי, 2009 gadi_sr אין תגובות

באג:

כאשר מסירים דינאמית קומפוננטה scrollable כאשר המשתמש עדיין נמצע בפעולת scroll (העכבר לחוץ), ברגע שהמשתמש ישחרר את העכבר תזרק הודעת השגיאה הבאה:

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at fl.controls::ScrollBar/thumbReleaseHandler()

הסיבה

כאשר המשתמש לוחץ על עכבר בקומפוננטה שהיא scrollable, מופעלת האזנה ל-MouseEvent.MOUSE_UP על מנת לשחרר את הקומפוננטה ברגע שחרור העכבר. הבעיה במקרה זה, שהאובייקט לו מאזינים הוא ה-stage, וכאשר מתרחש ה-event, הוא משתחרר על ידי ה-callback באופן הבא:

stage.removeEventListener(MouseEvent.MOUSE_UP,thumbReleaseHandler);

אולם כאשר מסירים את האובייקט מהבמה, אובייקט ה-stage אינו קיים יותר ולכן הקריאה נופלת.

בנוסף, לא ניתן להשתמש ב-try/catch על מנת שהשגיאה לא תופיע אצל ה-client מכיוון שהאובייקט הוא קומפוננטה גנרית של Flash.

פתרון אפשרי

workaround שעובד במקרה הזה הוא לזרוק event מהקומפוננטה של MouseEvent.Mouse_UP על מנת לבטל את ההאזנה ל-event אחרי שנעלם האובייקט.

comboBox.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));
comboBox.close();

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:

באג: combobox.visible לא משפיע על ה-list

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

הבאג:

אם משנים תצוגה של קומפוננטת combobox ל-visible = true ומשתמשים בפונקציית open לפתוח אותו דינאמית, התוצאה תהיה ה-scrolllist עצמו ייפתח, ללא תיבת הטקסט העליונה עצמה.

הסיבה:

המימוש של פונקציית open בקומפוננטה, משתמש ב-stage עבור addChild ולא באובייקט עצמו ולכן אין קשר בין התצוגה של הקומפוננטה לתצוגה של ה-list.

/**
* Opens the drop-down list.
*
* <p><strong>Note:</strong> Calling this method causes the <code>open</code>
* event to be dispatched. If the ComboBox component is already open, calling this method has no effect.</p>
*
* @see #close()
* @see #event:open
*
* @langversion 3.0
* @playerversion Flash 9.0.28.0
*/
public function open():void {
currentIndex = selectedIndex;
if (isOpen || length == 0) { return; }

dispatchEvent(new Event(Event.OPEN));
isOpen = true;

// Add a listener to the stage to close the combobox when something
// else is clicked.  We need to wait a frame, otherwise the same click
// that opens the comboBox will also close it.
addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true);

positionList();
list.scrollToSelected();
stage.addChild(list);
}

הסיבה לזה היא כנראה הרצון להציג את ה-list מעל רכיבים אחרים שנמצאים על הבמה ולכן אין התייחסות לאובייקט עצמו.

פתרון אפשרי:

לבדוק visibility או contains של ה-combobox לפני שימוש ב-open

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:

עדכון 2 מוצרים ל-DVR ב-FMS 3.5

24 מאי, 2009 gadi_sr אין תגובות

DVR (Digital Video Recording), שנכנס כפונקציונליות חדשה ב-FMS 3.5 מקבל תמיכה בשני כלים, אחד חדש: DVRCast ואחד מעודכן FLVPlayback.

DVRCast הינה אפליקציית FMS חדשה, שבאה לתת תמיכה בפונקציונליות מתקדמת של DVR בצד השרת.

הגרסה החדשה של FLVPlayback הוא עדכון של הקומפוננטה לתמיכה ב-DVR.

עוד על DVR

להורדה של הכלים

לפרטים נוספים על העדכון

DVR

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:

טעינת Embedded YouTube player ללא Sound

24 מאי, 2009 gadi_sr אין תגובות

בעיה שנתקלתי בה לאחרונה בשימוש ב-chromless player של youtube בטעינת קובץ חדש היא שהקובץ מתנגן ללא Sound. הפתרון הוא להשתמש בקוד הבא טרם הטעינה:

ExternalInterface.call("unMute");
ExternalInterface.call("setVolume", volumeValue);

לפרטים נוספים לגבי chromless player

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

אחרי Limelight, גם Akamai עוברים ל-FMS 3.5

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

מספר ימים אחרי ההודעה של Limelight, עוברים גם Akamai לתמיכה בפיצ'רים של FMS 3.5 ושימוש ב-Dynamic Streaming וזאת על מנת לשפר חוויית HD video של חברת Epix ופורטל הוידאו שלהם.

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

Flex Builder יקרא מעתה Flash Builder

17 מאי, 2009 gadi_sr אין תגובות

Adobe הודיעה כי הגרסה הבאה של Flex Builder/Gumbo תקרא Flash Builder, וזאת בהתאם לתוכניות הרחבת ה-Brand של Flash כדוגמת Flash Platform/Player/Lite/Catalyst וכו'.

הסיבה העיקרית במקרה זה היא הרצון לקשור את Flash Catalyst ואת סביבת ה-Flex היות ושתיהן עובדות ביחד על Flex SDK.

Flex לא נעלמת כשם מותג, היות והשימוש ב-Flex SDK עודנו קיים. אז לכל מפתחי ה-Flex שנבהלו, אתם עדיין מיוחדים, זה בסדר :)

  • Share/Save/Bookmark
קטגוריות:Flash Builder, Flash Catalyst, Flex, כללי תגיות:

Flash CS4 Update

15 מאי, 2009 gadi_sr אין תגובות

Adobe שחררה גרסת עדכון ל-Flash CS4 שכוללת מספר רב של תיקוני ביצועים בסביבת העבודה.

רשימת תיקונים

להורדת העדכון

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

Limelight עוברים ל-FMS 3.5

12 מאי, 2009 gadi_sr אין תגובות

Limelight, מה-CDNs הגדולים בעולם, וביחוד מהפרטנרים של Adobe לשידור מדיה ב-streaming וב-Progressive download הודיעו על הטמעת FMS 3.5 ברשת ה-Production שלהם.

בנוסף, הם הכריזו על תמיכה ב-Strobe של Adobe, ואם לצטט את Peter Coppola:

“Limelight Networks is pleased to support Adobe Strobe as a key initiative for helping publishers better monetize their content. We have long been an active supporter of industry-platform projects, and Strobe is a welcome addition to the open online video ecosystem. We look forward to working closely with Adobe to develop innovative ways to integrate Strobe’s framework into our video delivery technologies, including enhancing the free player tools we already make available to customers and delivering plug-ins that will enable Strobe-based players to take advantage of the robust, scalable features of our network-based delivery platform.”

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

Flash Player Vs. Silverlight, ההשוואה נמשכת

11 מאי, 2009 gadi_sr אין תגובות

מאמר מצויין של Smashing Magazine בנושא בחירת טכנולוגיה ל-RIA והשוואה בין FP9 ומעלה ל-Silverlight. ההשוואה הטכנולוגית אמנם לא כוללת את F10 ואת Silerlight3 הממשמש ובא, אבל מכילה הרבה נקודות מעניינות לשיקול בין הפלטפורמות. בתגובות למאמר ניתן למצוא נקודות נוספות.

Flash Vs. Silverlight

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:

עדכון ל-FMS 3.5

1 מאי, 2009 gadi_sr אין תגובות

עדכון ל-Flash Media Server 3.5.2 מטפל העיקר בנושאים שנכנסו ב-3.5 כמו dynamic streaming ו-dvr

release notes

update

  • Share/Save/Bookmark
קטגוריות:כללי תגיות:

Policy service עבור socket באפליקציות Flash

1 מאי, 2009 gadi_sr 17 תגובות

בעיה קלאסית שקיימת בתקשורת של Binary Sockets ב-actionscript3 היא שלא ניתן לפנות ללא הרשאות מתאימות ל-ports מתחת ל-1024. נניח סיטואציה שבה אני רוצה למשוך באופן בינארי קובץ swf או קובץ תמונה ישירות מהשרת ללא אובייקטים מתווכים כמו Loader  או URLLoader, בשביל זה אני צריך גישה לפורט 80 של ה-Web Server, וזה אומר פניה לפורט מתחת ל-1024 ואין אישור בדרך הסטנדרטית.

ה-error שמתקבל:

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: file:///xxx.swf cannot load data from [server]:80.

קריאה של התקשורת שמתבצעת בשלב הזה מראה על שליחת הבקשה: <policy-file-request/> לשרת, במטרה לקבל אישור על קריאת התוכן מהעמוד המבקש. העניין הוא שהבקשה לאישור נשלחת ל-port שונה מזה שאליו נשלחת הבקשה, שהוא ה-port עליו צריך להאזין השרת.

הפתרון הרגיל במקרה כזה הוא שימוש ב-crossdomain.xml עבור כל ה-ports, או ports מוגדרים ברשימה כגון זאת:

<cross-domain-policy>
<allow-access-from domain="flashdev.co.il" to-ports="*" />
</cross-domain-policy>

במקרה הזה היאשצריך שהפניה ל-crossdomain תתבצע באמצעות xmlsocket ולא באמצעות http, כלומר הגדרת ה-loadPolicyFile של המערכת צריך להיות משהו כזה:

Security.loadPolicyFile("xmlsocket://flashdev.co.il:portNumber/crossdomain.xml");

מה שאומר שלא ניתן להשתמש בשרת ה-webserver הרגיל עבור זה.

אופציה נוספת היא לא להגדיר בכלל loadPolicyFile והשרת יפנה ישירות ל-port כאשר תתבקש קריאה ל-socket

מה עושים? משתמשים ב-policyServer, מיני שרת שכתבתי ל-windows (גרסה ל-linux בקרוב), שניתן לקנפג לאיזה פורט רוצים שהיא תאזין ומה ה-crossdomain.xml שתזרוק למשתמש שמבקש.

השרת מאזין ב-default לפורט 843 (ניתן לשינוי, שימו לב לשנות את loadPolicyFile בהתאם) . ניתן גם להגדיר את הקובץ שיאזין ל-ip ספיציפי (לשימוש בכמה interfaces) ולשנות את מבנה ה-crossdomain.

אם יש בקשות/הערות/באגים, מוזמנים לשרשר בתגובות

win32 PolicyServer 1.0

  • Share/Save/Bookmark
קטגוריות:כללי תגיות: