Home > Flash > ExternalInterfaceのaddCallbackが実行されないエラー

ExternalInterfaceのaddCallbackが実行されないエラー

  • Posted by: ryow
  • 2008年7月28日 23:51
  • Flash

via:
ExternalInterfaceでActionScriptの関数呼び出し失敗への対策 - blog.katsumata.tv
ExternalInterfaceのはまりどころを再検証 -tech.kayac.com

jsとswfを繋げるためにExのcallとaddCallbackを使いまくるんですが、ときどきaddCallbackが動作しないことがあります。
これのために土日月を費やしてしまいました。

//swf.objidはFlashを書き出しているSWFObjectの第二引数
function call0(){
  var player = document.all? window[swf.objid] : document[swf.objid];
  player.OverlayCallBack0()
}

普通はこれでFlash側の OverlayCallBack0() 関数が動くはずなんですが、うんともすんとも言いません。そこで、もう諦めて「ブッダ」読んで寝ようと思ったときに

  try{
    call0();
  }catch(e){
    alert(e)
  }

ってやってみたら、alertされて「TypeError:player.OverlayCallBack0 is not a Function.」と表示されました。これはエラーがキャッチされた証拠です。で、このエラーは何かというと、flash側の用意ができていないよ、ということらしい。Firebugコンソールで普通に「call0()」とタイプするとちゃんとFlashは動きます。どういうこっちゃ。

上記のエントリでは、JSの関数を実行したいときはASから呼べ、と書いてありますが逆にASをJSから確実に呼びたいときはどうすればいいんでしょうねぇ? Flash自体はローディングを用意してあるので、ロードが完了したらcallbackして、その先の処理を進めているから、Flashがロードできていない状態というのはありえないわけです。じゃあなぜ??

ASを呼ぶにはASから? JSを呼ぶのはASから、というのは楽ですが、ASを呼ぶためのJSが is not a Function. なのは意味不明です。。。。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://ryow.net/mt/mt-tb.cgi/350
Listed below are links to weblogs that reference
ExternalInterfaceのaddCallbackが実行されないエラー from ryow.net Blog

Home > Flash > ExternalInterfaceのaddCallbackが実行されないエラー

About

りょうどっとねっとブログ

Twitter Id:ryownet

はてなブックマーク Id:ryownet

Search

Return to page top