我试图让 JS 在 Wordpress 网页和 Actionscript 2 Flash 电影中相互交谈。尝试失败得很惨。在每次尝试调用我为其设置回调的函数时,我都会在浏览器错误控制台中得到“.....不是函数”(我使用的是 Firefox 20)。
这是设置的方式:
该页面有点不寻常,它是一个带有内联 javascript 的 Wordpress 页面。主要的 javascript 是加载 flash 对象的 jQuery.ready() 代码块(这样做是为了将 URL 中的 GET 参数传递到 flash 中)。加载后,有一个链接:
<a href="javascript:jQuery('#fmap')[0].setRegion('regiona');">Region A</a>
同时,flash 对象中包含以下内容以使其成为可能:
import flash.external.ExternalInterface;
System.security.allowDomain("thisdomain.com"); // the domain on which the flash is hosted
ExternalInterface.addCallback("setRegion", null, switchZone); //switchZone is the function's internal name
flash 的容器将 allowScriptAccess 设置为“always”,我可以确认 jQuery 语句击中了正确的目标。但是,当调试 flash 对象时,addCallback 返回 false — 表明它失败了。有人知道会发生什么吗?