javascript и проблема с флеш-связью с динамически вставленным флеш-объектом - PullRequest
0 голосов
/ 03 февраля 2011

Я работал с 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);
 }

Спасибо

1 Ответ

0 голосов
/ 21 октября 2011

все просто.использовал document.getElementById('flashgame').JS2Flash_SetValue(msg) и он работал как шарм

...