2010-12-04 98 views
2

我可以用ExternalInterface.call('func_name',.args)调用JS函数。好吧有没有办法从ExternalInterface调用Javascript类方法?

但是如果我想调用一个js类实例方法呢?

ExternalInterface.call('obj.method_name',.args) //this seems not to work 

有没有办法做到这一点?

+0

为什么不把类返回包装在函数中? – chchrist 2010-12-04 11:04:47

回答

0

您可以使用ExternalInterface调用JavaScript方法。 可以肯定,你已经包含在您的JavaScript文件或你写你的JavaScript的功能您index.template.html文件中,这可能是这样的:

<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’?

我希望这会对你有所帮助。

+0

嗯,我的问题不同。无论如何,我自己解决了。 – Luca 2010-12-04 15:18:12

+0

对不起,我误解了 - 但很好,你已经解决了你的问题。 – EvilMM 2010-12-04 16:28:07

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

相关问题