2009-05-19 42 views
0

HI,ExternalInterface的 - 從調用SWF的JavaScript

我嘗試從我的ActionScript代碼,但它不工作調用javascript函數;

AS3:

if (ExternalInterface.available) 
    { 
    try 
    { 
    ExternalInterface.addCallback("changeDocumentTitle",null); 
    } 
    catch(error:Error) 

JS(速度文件使用SWFObject內)

function changeDocumentTitle() 
    { 
     alert('call from SWF'); 
    } 

有誰知道這可能是happenin?

+0

這只是在本地發生?它發生在網絡上嗎? – quoo 2009-05-19 16:21:26

+0

其發生WebSphere服務器 – cduggan 2009-05-19 16:26:37

回答

7

如果你正試圖從你的Flex應用程序中調用JS功能,要使用ExternalInterface.call(...),而不是ExternalInterface.addCallback(...)。從文檔:

公共靜態函數調用(functionName:字符串,...參數):*

調用由Flash Player容器公開的函數,傳遞零個或多個參數。如果函數不可用,則調用返回null;否則它返回該函數提供的值。在Opera或Netscape瀏覽器上不允許遞歸;在這些瀏覽器上,遞歸調用會產生空響應。 (遞歸支持Internet Explorer和Firefox瀏覽器。)

如果容器是HTML頁,此方法將調用腳本元素的JavaScript函數。如果你想從您的Flash應用程序的HTML容器暴露ActionScript函數,以便它可以通過JavaScript調用

http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html

的addCallback()被使用。

0

在本地系統中,SWF和Javascript之間的溝通往往是由安全問題的阻礙。您可以重新配置閃光燈,以通過「設置管理器」允許其中一些通信。

這也可能是與「allowscriptacces」未設置您嵌入Flash對象的問題。

另一個問題可能是閃光燈嘗試加載的JavaScript之前調用JavaScript。 init命令可能非常煩人。

相關問題