ExternalInterface 类是外部 API,这是一个在 ActionScript 和 Flash Player 容器之间实现直接通信的应用程序编程接口,例如,包含 JavaScript 的 HTML 页。Adobe 建议使用 ExternalInterface 实现 JavaScript 与 ActionScript 之间的所有通信。
在 Flash Player 中,可以使用 HTML 页中的 JavaScript 来调用 ActionScript 函数。ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。
ExternalInterface提供了与JavaScript交互的方法。
ExternalInterface.call允许在ActionScript中调用JavaScript。
call的第1个参数是JavaScript中的函数名, 其余的参数是要传递的参数, 可以是0到多个。
ExternalInterface.addCallback允许在JavaScript中调用ActionScript。
addCallback的第1个参数是JavaScript中调用的函数名,
第2个参数是当JavaScript执行时候调用的ActionScript函数。
etc:
//======================================================
js文件
function jsSayHi(){}
function asSayHello():void{}
//======================================================
as文件
function asSayHi():void{}
ExternalInterface.call("jsSayHi");
ExternalInterface.addCallback("asSayHello",asSayHi);
//======================================================
当as执行ExternalInterface.call("jsSayHi");时候,js文件中的jsSayHi()函数被执行。
ExternalInterface.addCallback("asSayHello",asSayHi);表示当js执行asSayHello()函数时候,as文件中的asSayHi()函数被执行。
1 : Flex中利用ExternalInterface类和ExternalInterface.call()函数调用JavaScript函数。
注:编辑/html-template/目录下的“index.template.html” 文件。该文件是用来创建/bin-debug/和/bin-release/目录下的主HTML文件。如果你不是直接将JavaScript加在文件html中,而是用一个JS文件代替的话,那你可以在HTML文件中INCLUDE JS的文件:
<scriptsrc="scripts.js"language="JavaScript"></script>
如:ExternalInterface.call("vehTypeQuery", policy.vehInfo, policy.insKind, unitCode, basePath);
调用由 Flash Player 容器公开的函数,不传递参数或传递多个参数。如果该函数不可用,调用将返回
null
;否则,它返回由该函数提供的值。
2:ExternalInterface.addCallback() ;
public static function addCallback(functionName:String, closure:Function):void ;
如:ExternalInterface.addCallback("receivedFromVehTypeQueryJY", receivedFromVehTypeQueryJY);
functionName:String — 容器可用于调用函数的名称。
closure:Function — 要调用的 closure 函数。这可能是一个独立的函数,或者可能是引用对象实例方法的 closure 方法。通过传递 closure 方法,可以将回调定向到特定对象实例的方法。
由ExternalInterface.call的方法传送 String,Number,Boolean,Object,Array至JavaScript,JS 显示在页面上后相应返回String,Number,Boolean,Object,Array给Player,Player接收后显示在 TextArea内;
再由页面JavaScript分别传送String,Number,Boolean,Object,Array至Player ExternalInterface.addCallback的方法,Player先予以显示至TextArea内,然后返回 String,Number,Boolean,Object,Array给JavaScript;