欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AS3與JS之間的簡單自定義參數(shù)通訊

  發(fā)布時間:2013-07-09 12:36:18   作者:佚名   我要評論
一直沒去深入研究下AS3與JS的交互開發(fā)也就是SWF在html中的通信,最近出于項目要求被迫投入了,也在這里做個匯總
一直沒去深入研究下AS3與JS的交互開發(fā)也就是SWF在html中的通信,最近出于項目要求被迫投入了,也在這里做個匯總.
一:HTML中最快速的傳值方式
在HTML中插SWF時,可以跟個參數(shù),比如:
files/home.swf?id=”21″
在AS3里可以這樣去接收
var id:String=stage.loaderInfo.parameters["id"]; 這種傳值方式其實(shí)AS2的時候也是這樣做的,到AS3時使用parameters 屬性替換了AS1.0 和2.0 提供SWF文件參數(shù)作為主時間軸的技術(shù),所以我們改用一下AS3的取值方式就行了.
這種方式只能是單邊一次性傳值,有時候會用得到,但需要與JS相互通信就不行了,還有,只能接收字符串.
二:使用外部通信接口ExternalInterface
這也是AS2時代進(jìn)化來的,目前公認(rèn)的最靠譜的通信方式.
使用方法:
1.JS調(diào)用AS3的函數(shù)
確定JS調(diào)用AS3之前,要在AS3中綁定調(diào)用函數(shù),也就是說,只有AS3答應(yīng)給的方法JS才能調(diào)用.
使用:ExternalInterface.addCallback(functionName:String, closure:Function):void有兩個參數(shù):
functionName:String — 容器可用于調(diào)用函數(shù)的名稱。
closure:Function — 要調(diào)用的 closure 函數(shù)。 這可能是一個獨(dú)立的函數(shù),或者可能是引用對象實(shí)例方法的 closure 方法。通過傳遞 closure 方法,回調(diào)實(shí)際上可以定向到特定對象實(shí)例的方法。
復(fù)制代碼
代碼如下:
ExternalInterface.addCallback("getASVars",getASFun); private function getASFun(value:String):void { //得到JS傳來的值:value }
好了,可以在JS中去調(diào)用這個方法了,調(diào)用前還要先取得插進(jìn)HTML的SWF的ID,我們在HTML中不管用什么方式插都可以設(shè)置ID 例如先通過id為”mov”來獲取對象,再調(diào)用上面綁定的方法:
復(fù)制代碼
代碼如下:
function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; } else { return document[movieName]; } } thisMovie("mov").getASVars(value); 2.AS3調(diào)用JS的函數(shù)
AS3調(diào)JS直接使用call就行了 使用:ExternalInterface.call(functionName:String, … arguments):* 這個方法有兩個參數(shù): functionName:String — 要在容器中調(diào)用的函數(shù)的名稱。 … arguments — 傳遞到容器中的函數(shù)的參數(shù)。 您可以指定零個或多個參數(shù),參數(shù)之間用逗號分隔。 這些參數(shù)可以是任何 ActionScript 數(shù)據(jù)類型。 當(dāng)調(diào)用 JavaScript 函數(shù)時,ActionScript 類型自動封裝到 JavaScript 類型中;當(dāng)調(diào)用其它某個 ActiveX 容器時,將在請求消息中對參數(shù)進(jìn)行編碼。 例如:
復(fù)制代碼
代碼如下:
ExternalInterface.call("setToJS","paramTest"); //在JS中編寫這個setToJS的函數(shù) function senToJS(value){ alert(value)//輸出:paramTest }
看起來很爽,但也不是完全靠譜,這個接口還是會挑食的,只有在以下瀏覽器中才支持: 瀏覽器 操作系統(tǒng) 操作系統(tǒng) Internet Explorer 5.0 及更高版本 Windows Netscape 8.0 及更高版本 Windows Macintosh Mozilla 1.7.5 及更高版本 Windows Macintosh Firefox 1.0 及更高版本 Windows Macintosh Safari 1.3 及更高版本 Macintosh 還有個安全沙箱的問題,如果出現(xiàn)安全沙箱警報,可以使用以下兩種修正方法: 1.在包含 HTML 頁中的 SWF 文件的 object 標(biāo)簽中,設(shè)置以下參數(shù): 2.在 SWF 文件中,添加以下 ActionScript:
復(fù)制代碼
代碼如下:
Flash.system.Security.allowDomain(sourceDomain)

相關(guān)文章

最新評論