从flash返回值到javascript

Ank*_*kit 0 javascript callback actionscript-3 externalinterface

如何将AS3中的值返回到javascript.我从JS调用AS3方法并希望AS3方法返回一个字符串:

//javascript
var string = swfObject["abcmethod"](arg1);
Run Code Online (Sandbox Code Playgroud)

我知道的唯一方法是添加一个回调方法,该方法在JS中从闪回调用.有没有更好的办法?

med*_*ire 5

AS3和Javascript之间的通信管道支持将值传递回调用的Javascript函数.它在文档中:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

使用ExternalInterface类,可以使用HTML页面中的JavaScript在Flash运行时中调用ActionScript函数.ActionScript函数可以返回一个值,JavaScript会立即将其作为调用的返回值接收.

如果您的代码不起作用,请尝试使用其他语法.以下是我通常使用的内容:

var myFlashObject = document.getElementById("theIdYouSuppliedToSwfObject");
var myResult = myFlashObject.abcmethod(arg1);
Run Code Online (Sandbox Code Playgroud)

你在actionscript中的代码应该是这样的:

ExternalInterface.addCallback("abcmethod", onAbcMethodCall);
private function onAbcMethodCall(...args:Array):String
{ return "Hello World"; }
Run Code Online (Sandbox Code Playgroud)