2009-05-19 50 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命令可能非常烦人。

相关问题