私はアクションスクリプトで次の呼び出しを行っています
var data:Object = ExternalInterface.call("getData");
trace("data is", data); // data is null in IE7-9, but works in FF
JavaScriptで次の関数に
function getData() {
var data = {example : "data"};
console.log("data", data); //displays as expected in the console
return data;
}
次のコードで埋め込みに swfObject2 を使用します (以下に未定義の変数がいくつかありますが、既存のコードからこれをコピーして少しクリーンアップしました)。
var This = this,
divId = "myDiv",
widgetData = serviceData.flashvars,
swfURL = "http://mysite.com/my.swf",
flashvars = widgetData, //external object, not used in this case
params = {
movie: serviceData.swfURL,
pluginspage: "http://www.adobe.com/go/getflashplayer",
align: "middle",
allowScriptAccess: "always",
quality: "high",
allowFullScreen: "true",
wmode: "transparent",
bgcolor: "#FFFFFF",
menu: "false"
},
expressInstallURL = "http://mysite.com/expressInstall2.swf?2",
attributes = {id : divId + "_mySWF", name: divId + "_mySWF"},
callback = function (e) {
console.log("player loaded");
};
flashVideoPlayer = swfobject.embedSWF(swfURL, divId, widgetData.width, widgetData.height, "10", expressInstallURL, flashvars, params, attributes, callback);
そして、ids、allowscriptaccess、および I'm not inside form タグのように、すべての通常は html に含まれています。javascriptがgetData内のデータを表示しているため、関数が呼び出される前に存在する必要があるなど、私が知っている初期化の問題はありません。問題は、javascriptがオブジェクトをフラッシュに返すことにあるようです。
この投稿も役に立たなかったようですが、swfObject を使用しているため、私の場合は少し異なります。私は何か間違ったことをしていますか、それともこれはバグですか?