2012-04-27 171 views
0

我想從javascript調用一個actionscript方法,但它說flashObj.method()不是函數。我已經在我的flash對象的子模塊中聲明瞭這個方法。因此,如何調用子模塊的方法從javascript調用actionscript方法

回答

0

ExternalInterface.addCallback()

我相當肯定,這只是作品的方法屬於文檔根目錄(或文檔類),而不是其他類的方法。

+0

但是,當我調用一個動態加載模塊的方法 – 2012-04-30 04:54:02

0

如上回答說你就需要使用

ExternalInterface.addCallback("nameOfFunctionAsCalledFromJS",nameOfFunctionInFlash); 

我建議使用不同的名稱爲2層的功能。你可以使用它來公開地提供不同類別的功能,只要它們是公開的。但是,假設你的模塊外部加載的SWF文件,當你加載SWF文件到你需要使用的LoaderContext的,並在同一ApplicationDomain中設定的模塊和一個SecurityDomain作爲加載它們的應用程序的應用程序:

var lc:LoaderContext = new LoaderContext(true,ApplicationDomain.currentDomain,SecurityDomain.currentDomain); 
loader.load(urlRequest,lc); 

此外,你需要允許從JS給你的應用程序(即加載模塊的)訪問和爲此你需要從JS任何調用之前調用allowDomain:

Security.allowDomain("yourdomain"); 
Security.allowInsecureDomain("yourdomai")