Flash與JavaScript通信

最近在做項目的過程中需要flash與js之間的互相調用,查找資料flash與js的通信有三中方法。
1.getURL("javascript:jsFunctionName()");
getURL是flash的一個全局函數,作用是向瀏覽器發送一個請求。熟悉js的人一定知道,向瀏覽器
發送javascript:開頭的請求,其實就是模擬了一個js的請求協議,瀏覽器會去在當前環境中找指
定的function。
這種方法在flash早期版本比較流行。
2.fscommand("command","arguments");
fscommand的方法是flash中與播放器通訊的方法,通常向播放器,發送命令。
例如:fscommand("fullscreen",“true“);使播放器全屏顯示。
由於在web頁面中flash播放器也根js在同一環境下,所以可以通過播放器與js通訊。
“flashId”是播放器對象在web頁面中的id名字,這裏假設就是flashId。
當在as中調用fscommand命令時,播放器會在web環境中找名爲:
flashId_DoFSCommand("command",arguments)的方法,參數與as中fscommand的參數相同。
這裏可以根據command的不同調用不同的方法,在js裏
如:
if(command=="alert"){
alert(arguments);
}
3.flash8後提供了一個擴展類,可以執行對js和js對as的調用。

ExternalInterface.call("functionName",parameters);
functionName:js中的函數名稱。
parameters:傳過去的參數,用逗號隔開
簡單的一句就可以實現對js方法的調用

同時這個類也可以實現js對as方法的調用,:)
ExternalInterface.addCallback('標識名',parent,Function);
這個方法就是把as中的一個function註冊爲一個“標識名”,讓js可以通過這個標識調用
標識名:js中可以調用的名稱
parent:方法運行環境也就是function中的this是誰。有一點像js中的call(parent,)或者apply(parent)
的感覺
funtion :as 中的一個方法名稱,注意是Function對象,不是string型
發佈了4 篇原創文章 · 獲贊 0 · 訪問量 1127
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章