ExternalInterface类是Flash 8 中新添加的用户处理于外部函数交互的类. 在功能上与 fscommand() 、CallFrame() 和 CallLabel() 方法相似,但它更灵活、更通用。推荐对 JavaScript 和 ActionScript 之间的通讯使用 ExternalInterface。
方法
addCallback (methodName:String, instance:Object, method:Function) : Boolean//将 ActionScript 方法注册为可从容器调用。
call(methodName:String, [parameter1:Object]) : Object//调用由 Flash Player 容器公开的函数,传递零个或多个参数。
使用时必须在发布设置中把Player设为8.0.
Flash调用Javascript方法:
Flash中:
import flash.external.ExternalInterface;//导入类
ExternalInterface.call("ExtFunc");//调用外部的ExtFunc方法
Html中:
<script language="javascript">
function ExtFunc(){
alert(123)
}
</script>
可以测试一下了.
从容器调用Flash中公开的方法:
Flash中:
import flash.external.ExternalInterface;//导入类
function test() {
test_txt.text = "123";
}
ExternalInterface.addCallback("forjstest", null, test);
Html中:
<script language="javascript">
function callBack() {
thisMovie("calExt").forjstest();
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
</script>
<button onClick="callBack()">Test</button>
在Flash所在的Object标签中,把id设为id="calExt".点Test可以测试一下.
注意:因为安全设置的问题,测试需要在localhost中进行.
|