我正试图在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-表示失败。任何人都有什么想法可以发生什么?
答案 0 :(得分:1)
要处理此问题,您需要在页面中注册回调函数,如下所示:
window.ping = function () {
$('#fmap')[0].setRegion('regiona');
}
然后在您的Flash环境中,请调用ping()注册。
函数调用的顺序是这里的关键点。
答案 1 :(得分:0)
好的,明白了。首先,函数声明需要在ExternalInterface.addCallback位之上。另外,一旦完成它就开始抛出一个不同的错误,所以我不得不做一个新的功能...感谢你的帮助。