带有2个参数的ExternalInterface.addCallback

Res*_*n01 0 javascript flash actionscript-3

我试图将2个变量从javascript传递给flash.我想我可以做这样的事情,我试着收到它们.

ExternalInterface.addCallback("callAs", muscle, tension);
Run Code Online (Sandbox Code Playgroud)

可悲的是,这会引发错误

1137:参数数量不正确.预计不超过2个.

有没有办法发送2个变量,而不是每次都要发2次?

提前致谢!树脂

cro*_*y88 7

有可能的.

ExternalInterface.addCallback("theFunctionNameInJavascript", theFunctionNameInActionscript);

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

}
Run Code Online (Sandbox Code Playgroud)

然后在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);
}
Run Code Online (Sandbox Code Playgroud)

你会用......之类的东西触发它

<form action="javascript:theFunctionNameInJavascript('idNameOfYourSWF', 'thisisparam1', 'thisIsParam2')" id="form">
<input type="submit" value="Click Me" />
</form>
Run Code Online (Sandbox Code Playgroud)