日期:2014-05-16  浏览次数:20315 次

AS3与JS通信

先加几个小标题有利于搜索查阅

js与as3的交互|as3 js 在html中应用|as3调用js

一直没去深入研究下AS3与JS的交互开发也就是SWF在html中的通信,最近出于项目要求被迫投入了,也在这里做个汇总

一:HTML中最快速的传值方式

在HTML中插SWF时,可以跟个参数,比如:

files/home.swf?id="21"

在AS3里可以这样去接收

AS3代码
  1. var?id:String=stage.loaderInfo.parameters["id"];??

这种传值方式其实AS2的时候也是这样做的,到AS3时使用parameters?属性替换了AS1.0 和2.0 提供SWF文件参数作为主时间轴的技术,所以我们改用一下AS3的取值方式就行了.
这种方式只能是单边一次性传值,有时候会用得到,但需要与JS相互通信就不行了,还有,只能接收字符串.

二:使用外部通信接口ExternalInterface

这也是AS2时代进化来的,目前公认的最靠谱的通信方式.

?使用方法:

1.JS调用AS3的函数

确定JS调用AS3之前,要在AS3中绑定调用函数,也就是说,只有AS3答应给的方法JS才能调用.

使用:ExternalInterface.addCallback(functionName:String, closure:Function):void

有两个参数:
functionName:String — 容器可用于调用函数的名称。??
closure:Function — 要调用的 closure 函数。 这可能是一个独立的函数,或者可能是引用对象实例方法的 closure 方法。通过传递 closure 方法,回调实际上可以定向到特定