溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

AS3和JS如何實(shí)現(xiàn)通信

發(fā)布時(shí)間:2021-11-24 11:01:33 來源:億速云 閱讀:133 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(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)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI