在 IE9 中 ExternalInterface.call 無法作用的解決方法

Standard

由於要在網頁中呼叫 Flash 裡面用 ExternalInterface.addCallback 加入的事件,
除了 HTML 中Flash 物件加入時要設定 id & name,還有 allowScriptAccess params 使其允許、AS 中也要加入 flash.system.Security.allowDomain(sourceDomain) 外,
在不同瀏覽器上也會因為 js 抓取 flash 物件的方式不同而要個別判斷。

Calling a custom FLASH method from IE7 & IE8 – stackOverflow 提供了一個方法,可通用於 IE, Chrome, Firefox:

 function thisMovie(movieName) {
     return document[movieName] || window[movieName];
 }

然後如果要 call Flash 中的 function 的話可以這樣寫:

function callExtFunction(g){
    var flash = thisMovie('flash物件的id&name');
    if (flash) { flash.flashFunction名稱(g); }
}

就醬子。

[網頁] Flash ExternalInterface.call Javascript 方法,於 IE 引發「’null’ 是 null 或不是一個物件」錯誤的解法

Standard

最近這個案子,有使用到 Flash ExternalInterface.call 網頁上的 Javascript function 的動作,測試過程中,於 IE 中一直會引發下面這段錯誤訊息:

訊息: ‘null’ 是 null 或不是一個物件
行: 1
字元: 111
程式碼: 0

Continue reading

[Flash][VB.NET] Flash 與 WinForm 雙向通訊,以及使其右鍵失效的方法

Standard

最近的 Case 要將 Flash 做主要的 UI,而與其他裝置是透過 WinForm (VB.NET) 來寫。因此要將 Flash SWF 檔案嵌入 WinForm,並使 Flash 與 WinForm 能做雙向的指令溝通。

這方面的資料還算好找,Google 一下就有相關的結果了,在此就實做一次 VB.NET 版本的。
Continue reading

[AS3][JavaScript] Facebook 發佈訊息的方法

Standard

本篇延續 [AS3] Facebook 朋友列表在 Flash 中用捲軸方式呈現 這篇,一樣用 Jozef Chúťka 前輩所寫的 Facebook AS3 Graph API 作法,來發佈訊息到塗鴉牆上。(由於 Connect 時就應用程式就會要求發佈塗鴉牆的權限,因此這種方法就不會跳出任何發佈視窗喔)

此外也附加了一個以 JavaScript 方式發佈塗鴉牆的方法,這個就會跳出常見的發佈訊息小視窗囉。可以依需求搭配使用~

Facebook AS3 Connect 方法在此一樣不提,請自行參考教學連結

※ 其中要注意的是,發佈時需發佈成 Flash Player 10 版本,否則在 IE 中會無法在 connect 後正確 authorized!會一直跳出 callback.htm 頁面卻無法正確授權。為了這個問題卡很久,需特別注意。

Continue reading

[AS3] 擷取 Flash 畫面上的某一區塊為圖檔 (C#/PHP)

Standard

這次來幫一個常用的功能需求做一下作法筆記,就是「擷取 Flash 畫面上的某一區塊為圖檔」。

使用 ActionScript 3.0,後端程式本例做了兩種版本 PHP 與 C#.Net。

  1. 如範例檔,在畫面上安排兩個元件,用來放置欲擷取區塊的 previewMC,以及擷取鈕 capture_btn。

Continue reading

[AS3] 3碼郵遞區號+下拉縣市/鄉鎮市區地址表單範例

Standard

在做活動網站時,表單通常會用到地址這欄,並希望能附帶郵遞區號。參考了網上一些 JavaScript 版本的範例,將之改為 ActionScript 3 版本。

Fla 檔案中請擺放 兩個 ComboBox,一個是縣市用、另一個是鄉鎮市區用(會附帶該區的郵遞區號在後),然後再擺一個文字框,供使用者輸入其後的地址。往後有機會再研究 3+2 碼郵遞區號版本的吧。

※ 郵遞區號若有誤請指正,尚未詳細檢查。
※ 2011/03/18 更新:五都升格後的資料。

Code 如下,請參考:
Continue reading

[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

[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 又是另一個領域了,要學習的還很多啊。