我正在使用ExternalInterface与AS2进行javascript和flash通信。这适用于我的Flash游戏嵌入在虚拟页面中,来自flash和javascript的调用工作正常,没有任何错误。
在我的新页面中,我动态地将flash对象插入div(通过jquery)。问题是,当我调用像flash_Obj.JS2Flash_SetValue(val);
这样的flash函数时,它表示JS2Flash_SetValue
不是定义的函数。虽然当我检查object / embed元素的存在时,它确实显示了元素(我使用了firebug来调试)。
否则,在虚拟页面中,我正在测试javascript和flash通信,它运行没有任何错误。
我已经看过这个问题 - Javascript loses communication with flash when moved inside dom
但它没有多大帮助。
有人可以建议一个解决方案吗?
Flash代码
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);
}
由于
答案 0 :(得分:0)
document.getElementById('flashgame').JS2Flash_SetValue(msg)
,它就像一个魅力