[Flash] 在 Flash 中 load 來自 http://profile.ak.fbcdn.net/ 的使用者圖片會報 checkPolicyFile 錯誤的解法

Standard

在製作放置於外部的 Flash Game 時,有利用到 Facebook Graph API 去撈使用者的顯示圖片(https://graph.facebook.com/使用者UID/picture,會回傳位於 http://profile.ak.fbcdn.net/ 的圖片網址),但由於 Flash 中的安全性設置,若有裝 Flash Player Debug 版,就會跳出這樣的錯誤訊息

需要指定原則檔,但是在載入媒體時,尚未指定 checkPolicyFile 指標。

Google 了一下,找到了這篇 Blog,依照其中的 code:

Continue reading

[AS3] Facebook 朋友列表在 Flash 中用捲軸方式呈現

Standard

這篇是關於在 Flash 中撈取 Facebook 的朋友列表,以捲軸(Scrollbar)呈現的作法。

※捲軸的做法我是看 Scrolling photos loaded dynamically with ActionScript 3 的教學,並將之改為列表呈現+垂直捲軸+滾輪捲動支援。

※關於 Facebook AS3 Graph API 的作法,請參照 Jozef Chúťka 前輩所寫的 Facebook Graph API & OAuth 2.0 & Flash (update) 這篇文章,往後有時間我再寫一篇文章介紹囉。

呈現的效果大概會像這樣:

Continue reading

[JavaScript] 在非 IE 瀏覽器上使用 AC_FL_RunContent 載入 Flash 無法取得物件名稱的解法

Standard

使用 Adobe Dreamweaver 插入 Flash SWF 物件時,會自動加上 AC_RunActiveContent.js 這個檔案,並用 AC_FL_RunContent 方法載入 Flash 內容。

我們想在網頁上藉由 JavaScript 傳遞參數給 SWF,這會用到 Flash 物件的 id 值;在 IE 上都很正常,可以正確地抓到 Flash 物件,可在非 IE 瀏覽器(如 Chrome)卻只會吐 undefined。

找到了下面這篇:
http://stackoverflow.com/questions/2229358/why-cant-i-get-javascript-to-talk-to-actionscript

Continue reading

[ASP.NET] Flash 圖表解決方案 amchart

Standard

最近有個案子希望用上花俏的圖表效果,最好還會動的。

曾經找過 jQuery 的方案 Horizontal Bar Graph in jQuery,也有動態生長效果,但沒有立體;還有另一套也滿有名的 Open Flash Chart,但在 ASP.NET 中使用的方法不是拖拉元件、指定對應屬性那麼直觀,還沒空仔細研究,就先跳過了。

最後覺得在 ASP.NET 環境下,用 amchart 這套圖表元件相當適合,也滿簡單的。屬性與方法相當多,以下只簡單介紹一下用法。

Continue reading

[jQuery] lightbox 彈出時造成頁面上的 Flash 消失

Standard

某個案子使用了 lightbox2 燈箱效果(jQuery 版,jquery-lightbox-0.5.js),而當 lightbox 彈出後,頁面上的 Flash 項目卻都消失了。看了一下 jquery-lightbox-0.5.js 的原始碼,原來是為了避免 Flash 顯示於最上層,也就是跑到 overlay 黑底的上面,而加上蹦現時將 embed、object 與 select 元素隱藏的語法。

其實可以利用 Flash 的 wmode 屬性避免這種現象,同時也可在燈箱效果出現時顯示 Flash(當然,是在 overlay 黑底下方)。
Continue reading

[AS3] 子影片讀取主影片的參數 (ADDED_TO_STAGE)

Standard

場景上的主影片使用 loader 將子影片 load 進來,然後子影片欲取得主影片設定的變數(如本例的 foo),有時候會發生抓不到的情況,但別支子影片卻正常,Google 了一下,找到要用 ADDED_TO_STAGE 這個事件做處理。
確保已經被載入到主場景上,此時再去抓該變數。

addEventListener(Event.ADDED_TO_STAGE, enterDLHandle);
function enterDLHandle(e:Event):void {
  var ROOT = stage.getChildAt(0);
  trace(ROOT.foo);
}

ActionScript 又是另一個領域了,要學習的還很多啊。