您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)AS3和JS如何實(shí)現(xiàn)通信,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
運(yùn)行環(huán)境:需要安裝IIS,創(chuàng)建網(wǎng)站目錄
AS3和外部容器通信方法比較簡單:
import flash.text.TextField; var txt:TextField = new TextField(); this.addChild(txt); txt.text = "等待..."; //向JS注冊(cè)方法,JS調(diào)用as3Function這個(gè)方法,就是執(zhí)行callback這個(gè)方法 ExternalInterface.addCallback("as3Function",callback); function callback($param:String):void { txt.text = $param; } //直接調(diào)用SJ的方法getReady ExternalInterface.call("getReady");
注意:先調(diào)用ExternalInterface.addCallback,再調(diào)用ExternalInterface.call
JS代碼:
<html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>FLASH與JS交互</title> <script language="JavaScript"> var jsReady = false; function pageInit() { jsReady = true; } /**頁面沒有加載完成會(huì)返回false,flash需要再次調(diào)用此方法*/ function getReady() { if(jsReady) { //as3Function方法是flash注冊(cè)的方法 getSwfInstance("FlashID").as3Function("成功"); } else { return jsReady; } } /**獲取flash,這里注意:<embed>元素name屬性是獲取的根據(jù)*/ function getSwfInstance(name) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[name]; } else { return document[name]; } } </script> </head> <body onLoad="pageInit()"> <object id="flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"> <param name="movie" value="test.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#F0F0F0"> <param name="menu" value="false"> <param name="wmode" value="opaque"> <param name="FlashVars" value=""> <param name="allowScriptAccess" value="sameDomain"> <embed id="embedID" src="test.swf" name="FlashID" width="550" height="400" align="middle" quality="high" bgcolor="#f0fff8" menu="false" play="true" loop="false" FlashVars="" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"> </embed> </object> </body> </html>
注意:swf的文件嵌入到html中的方法比較多,特別關(guān)鍵的要可以獲取到所嵌入的swf對(duì)象,通過代碼你可發(fā)現(xiàn)獲取swf對(duì)象,是通過embed中的name屬性。
關(guān)于“AS3和JS如何實(shí)現(xiàn)通信”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。