HI,
我试图从我的动作脚本代码调用一个javascript函数,但它没有工作;
AS3:
if (ExternalInterface.available) { try { ExternalInterface.addCallback("changeDocumentTitle",null); } catch(error:Error)
js(使用swfobject的内部速度文件)
function changeDocumentTitle() { alert('call from SWF'); }
有谁知道会发生什么?
如果您尝试从Flex应用程序中调用JS函数,则需要使用ExternalInterface.call(...)而不是ExternalInterface.addCallback(...).来自文档:
public static function call(functionName:String,... arguments):*
调用Flash Player容器公开的函数,传递零个或多个参数.如果该函数不可用,则调用返回null; 否则它返回函数提供的值.Opera或Netscape浏览器不允许递归; 在这些浏览器上,递归调用会产生空响应.(Internet Explorer和Firefox浏览器支持递归.)
如果容器是HTML页面,则此方法将在script元素中调用JavaScript函数.
http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html
如果要将Flash应用程序中的ActionScript函数公开给HTML容器,则可以使用addCallback(),以便可以通过JavaScript调用它.