在flash 的as3代码中,需要将方法提供给js调用,需要用到
ExternalInterface.addCallback这个函数
这个函数有两个参数,一个是提供给js调用的方法名,为String类型,
一个需要给js调用的方法函数,Function类型
在as3代码中写好需要给js提供调用的方法之后,就可以再页面上调用了
在页面上,给导入flash的<Object>标签加上id
然后在IE下通过
window[flashId]
获得flash对象
在其他浏览器下通过
document[flashId]
获得flash对象
获得对象之后,就可以直接写需要调用的方法了.
最后上个例子:
as3 代码:
function _test():void{
return "hello!";
}
ExternalInterface.addCallback("test",this._test);
js 代码:
function getSwfObj(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}else{
return document[movieName]
}
}
function jsTest(){
alert(getSwfObj("testFlashObj").test());
}
在页面上有这么一个flash
<object id="testFlashObj" width="100" height="200" type="application/x-shockwave-flash" data="swf/test.swf">
<param value="always" name="allowScriptAccess" /> 加上这个可以免除在ie下js对flash访问的激活框
<param value="swf/test.swf" name="movie" />
<param value="high" name="quality" />
</object>