Я работал с javascript и flash-связью с AS2, используя ExternalInterface. Это хорошо работает с моей флэш-игрой, встроенной в фиктивную страницу, и вызовы от и до flash / javascript работали нормально без каких-либо ошибок.
На моей новой странице я динамически вставляю flash-объект в div (с помощью jquery). Проблема в том, что когда я вызываю функцию flash, например, flash_Obj.JS2Flash_SetValue(val);
, она говорит, что JS2Flash_SetValue
не является определенной функцией. Хотя, когда я проверяю наличие элемента object / embed, он показывает элемент (я использовал firebug для отладки).
В противном случае, когда на фиктивной странице я тестировал javascript и flash-связь, она работала без ошибок.
Я посмотрел на этот вопрос -
Javascript теряет связь со вспышкой при перемещении внутрь 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);
}
Спасибо