我正在使用JavaScript和使用ExternalInterface与AS2进行flash通信。这适用于我的Flash游戏被嵌入在一个虚拟页面中,并且来自flash和javascript的调用工作正常,没有任何错误。动态插入闪存对象的javascript和flash通信问题
在我的新页面中,我动态插入Flash对象(由jquery)。问题是,当我调用像flash_Obj.JS2Flash_SetValue(val);
这样的闪存函数时,它说JS2Flash_SetValue
不是一个已定义的函数。尽管当我检查object/embed元素的存在时,它确实显示了元素(我使用firebug进行调试)。
否则,当在一个虚拟页面中,我正在测试javascript和flash通信,它运行时没有任何错误。
我已经在这个问题看 - Javascript loses communication with flash when moved inside dom
,但它是没有太大的帮助。
有人可以提出一个解决方案吗?
闪存代码
ExternalInterface.addCallback("JS2Flash_SetValue", null, SetValue);
var fVal:String;
function SetValue(_val:String):Void
{
ExternalInterface.call("ShowAlert", _val + " has received from JS.");
}
JS代码
function SetValue1(val) // first approach i tried
{
var flash_Obj = $('#flashGame').[0];
flash_Obj.JS2Flash_SetValue(val);
var flash_Obj1 = $('#flashGame').get(0);
flash_Obj1.JS2Flash_SetValue(val);
}
function SetValue2(val) // another approach i tried
{
var flash_Obj = getMovieName('flashGame');
flash_Obj.JS2Flash_SetValue(val);
}
function getMovieName(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
}
else {
return document[movieName];
}
}
function ShowAlert(msg) {
alert(msg);
}
感谢