2011-09-01 50 views
0

如何將AS3的值返回給javascript。我打電話從JS一個AS3方法,並且想要AS3方法即可返回一個字符串:從flash到javascript的返回值

//javascript 
var string = swfObject["abcmethod"](arg1); 

我所知道的唯一方法是添加這是從閃回在JS調用的回調方法。有沒有更好的辦法?

+0

發佈您的代碼定義SwfObject的,並在ActionScript –

回答

5

AS3和Javascript之間的通信管道確實支持將值傳遞迴調用的Javascript函數。它在文檔:

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

使用ExternalInterface類,你可以調用Flash運行時一個ActionScript 功能,在HTML頁面中使用JavaScript。 ActionScript函數可以返回一個值,JavaScript將立即以 作爲該調用的返回值。

如果您擁有的代碼無效,請嘗試使用其他語法。下面就是我通常使用:

var myFlashObject = document.getElementById("theIdYouSuppliedToSwfObject"); 
var myResult = myFlashObject.abcmethod(arg1); 

您在ActionScript代碼應該是這樣的:

ExternalInterface.addCallback("abcmethod", onAbcMethodCall); 
private function onAbcMethodCall(...args:Array):String 
{ return "Hello World"; } 
+0

我的壞張貼ExternalInterface的代碼。有一個錯誤的代碼。感謝幫助。 – Ankit