2012/02/15

[JavaScript]swfobjectのコールバック関数

前回、googleのCDNでswfobjectをローディングする方法を書きました。

で、実際に、swfをロードすることができるのですが、ここでの問題点として、読み込みが完了したかどうか通知してほしいなと。

調べたところ、swfobject.embedSWF()メソッドの最後の引数にコールバック関数を仕込めば読み込み完了を通知してくれます。

var flashvars = {};
flashvars.arg1 = "引数";

var params = {
wmode :"transparent",
allowScriptAccess: 'always'
};
var attributes = { id : 'swfID', name : 'swfID' };
swfobject.embedSWF("test.swf", "flashcontent", "500", "300",
"9.0.0", "expressInstall.swf",
flashvars, params, attributes, callbackSwf);

var swfObj = null;
// ********************************************************
// swfobjectのロード終了時のコールバックでFlashのオブジェクトを得る
// ********************************************************
function callbackSwf(obj){
swfObj = obj.ref;
}

// ********************************************************
// JavaScript → Flash
// ********************************************************
function testFunc(url){
if (swfObj == null){
alert("少ししてから試してください。");
} else {
swfObj.testFromJS('hello');
}
}

via:JavaScriptとFlashの連携
これ、グローバル関数が、使われていますが、こちらでも、おkのようです。

swfobject.embedSWF("test.swf", "flashcontent", "500", "300",
"9.0.0", "expressInstall.swf",
flashvars, params, attributes, funciton(){

});
グローバル関数を一つ作らずにすむので、こっちの方がいいのかなと思いました。

0 コメント:

コメントを投稿