ActionScript与JavaScript双向交互实现详解

作者:半夏

时间:2026-10-25

浏览:551

本文介绍ActionScript与JavaScript之间的双向通信机制。通过ExternalInterface类,AS可调用JS函数并获取返回值,JS也可注册回调方法供AS调用。文章提供完整的MXML代码示例及HTML/JS配合代码,展示如何配置事件监听、声明可调用方法及处理参数传递,适用于Flash与Web页面的集成开发场景。

文章目录

ActionScript调用JavaScript的实现

具体实现代码如下所示:

 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import flash.external.ExternalInterface;
public function invokeJavaScript():void
{ 
lblResult.text=ExternalInterface.call("returnTheName",txtName.text);
} 
]]> 
</mx:Script>
<mx:Panel width="800" height="600" title="ActionScript调用JavaScript" verticalCenter="0" horizontalCenter="0">
<mx:TextInput id="txtName" text="[请输入名字]"/>
<mx:Button id="btnConnect" label="确定" click="invokeJavaScript()" x="229" y="204"/>
<mx:Label id="lblResult" text="test" x="205" y="99" width="150" height="80"/>
</mx:Panel>
</mx:Application>

在HTML页面的JavaScript代码中,需要定义一个名为returnTheName的函数,该函数接收一个参数并返回拼接后的字符串,例如:function returnTheName(a){return "success! "+a};



上述代码展示了ActionScript如何调用JavaScript中的方法。



JavaScript调用ActionScript的实现

接下来介绍JavaScript如何调用ActionScript中的方法。


相关代码如下:

 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute">
<mx:Script>
<![CDATA[
import flash.external.ExternalInterface;
private function init():void
{ 
ExternalInterface.addCallback("addTo100",add);//声明可以被调用的方法
} 
private function add():int
{ 
var i:int;
var sum:int=0;
for(i=1 ; i<100 ; i++)
{ 
sum+= i;
} 
return sum;
} 
]]> 
</mx:Script>
</mx:Application>

在HTML页面中添加一个按钮,用于触发JavaScript调用:<button onclick="addMethod()">点击调用</button>


在JavaScript文件中定义addMethod函数,通过JavaScriptCallActionScript.addTo100()调用AS中的方法,并弹出结果:function addMethod{var s= JavaScriptCallActionScript.addTo100();alert(s;}

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章