2012-07-05 67 views
0

我试图将2个变量从javascript传递给flash。我想我可以做这样的事情,我as3尝试并接受它们。带两个参数的ExternalInterface.addCallback

ExternalInterface.addCallback("callAs", muscle, tension); 

可悲的是,这将引发一个错误

1137:参数数目不正确。预计不超过2.

有没有办法发送2个变量,而不是每次都必须进行2次调用?

在此先感谢! 树脂

回答

7

这是可能的。

ExternalInterface.addCallback("theFunctionNameInJavascript", theFunctionNameInActionscript); 

function theFunctionNameInActionscript(param1:String, param2:String):void { 
//do something with param1; 
//do something with param2; 

} 

然后在Javascript中你会像...

<!-- work out if we are on Mac or PC --> 
function getFlashMovie(movieName) { 
    var isIE = navigator.appName.indexOf("Microsoft") != -1; 
    return (isIE) ? window[movieName] : document[movieName]; 
} 

function theFunctionNameInJavascript(swf, param1, param2) { 
    getFlashMovie(swf).theFunctionNameInActionscript(param1, param2); 
} 

而且你会喜欢的东西触发此...

<form action="javascript:theFunctionNameInJavascript('idNameOfYourSWF', 'thisisparam1', 'thisIsParam2')" id="form"> 
<input type="submit" value="Click Me" /> 
</form> 
+0

我改剧本了一点,但我认为这会奏效。当然给了我理解,让我的工作;)谢谢! – Resin01 2012-07-05 16:01:18