私は、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);
}
それがあったおかげで