我可以用ExternalInterface.call('func_name',.args)
调用JS函数。行
但是如果我想调用js类实例方法呢?
ExternalInterface.call('obj.method_name',.args) //this seems not to work
有没有办法做到这一点?
答案 0 :(得分:2)
这只是一个范围问题。您必须在js类之外实例化swf对象。然后我可以在ExternalInterface.call()
中引用它。
window.addEvent('domready',function(){
swf = new Swiff('../files/swf/italy.swf',{
id:'italy',
container:'italy-flash',
width:280,
height:323,
params:{
bgcolor:'#ffffff',
wmode:'opaque',
allowScriptAccess:'always'
}
});
rm = new RelessersManager('regions');
});
现在从swf我可以调用rm
方法。 :) (.call('rm.method_name',...params))
以前,我在rm
内构建了swf,因此无法从swf中引用rm
。
答案 1 :(得分:0)
您可以使用ExternalInterface调用JavaScript方法。 请确保您已包含JavaScript文件,或者已在index.template.html文件中编写JavaScript函数,这可能如下所示:
<script type="text/javascript" src="./lib/file.js"></script>
<script type="text/javascript">
function doSomtething() {
alert("Something is done");
}
</script>
如果要调用函数“doSomething()”,可以使用以下代码执行此操作:
ExternalInterface.call("doSomething");
如果您想发送一些参数,您的JavaScript函数定义如下:
<script type="text/javascript">
function doSomtething(param1, param2) {
alert("Something is done");
}
</script>
你可以用这句话来称呼它:
ExternalInterface.call("doSomething", param1, param2);
如果这不起作用,请检查html文件中的JavaScript函数。
您已发布以下声明:
ExternalInterface.call('obj.method_name',.args)
您确定要发送“.args”而不是“args”吗?
我希望这会对你有所帮助。