2011-02-03 20 views
0

私は、JavaScriptとExternalInterfaceを使用しているAS2とのフラッシュ通信で作業していました。これは、ダミーページに埋め込まれている私のフラッシュゲームでうまく動作し、フラッシュ/ javascriptからの呼び出しはエラーなく正常に動作していました。動的に挿入されたフラッシュオブジェクトのJavaScriptとフラッシュ通信の問題

私の新しいページでは、(jqueryによる)divにflashオブジェクトを動的に挿入しています。問題は、私がflash_Obj.JS2Flash_SetValue(val);のようなフラッシュ関数を呼び出すと、JS2Flash_SetValueは定義された関数ではないということです。私がobject/embed要素の存在をチェックすると、要素を表示します(私はfirebugを使ってデバッグします)。

それ以外の場合は、ダミーページで、私はjavascriptとフラッシュ通信をテストしていましたが、エラーなしで実行されました。

私はこの質問へで見てきた -

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); 
} 

それがあったおかげで

答えて

0

シンプル。 document.getElementById('flashgame').JS2Flash_SetValue(msg)を使用し、それは魅力のように働いた

関連する問題