2007年4月13日金曜日

FlashLite with KDDI

シャープ製(特にW41SHは糞だと言ったけど、これはFlashのせいなのだろうか)

stat = fscommand2("RetrieveFocus");
if(stat==-1){
 trace("Use default cursor=" add _root._defezcursor);
 _root._cursor=_root._defezcursor;
}else{
 // 他機種向け復元処理
}

これは間違い。

if(_root._cli="W41SH"){ // しっかり機種分けを
 stat = fscommand2("RetrieveFocus");
 if(stat<0){
  // 読込失敗
  trace("Use default cursor=" add _root._defezcursor);
  _root._cursor=カーソルの初期値;
 }else{
  // 読込成功
  成功時処理
 }
}

で、注意しなければいけないのは、
このRetrieveFocus機能を呼び出したフレームが終了すると、
保存されたフレームにジャンプします。

決して、fscommand2コマンドが呼ばれたタイミングで、
内部的にgotoAndPlayが呼ばれる訳じゃない。
なのでこのフレームの描画とかも終わってから呼ばれる。

後は、更に癌なのは、fscommand2が呼ばれた場合、
読込失敗すると、フレームの最後にstop()があっても、
次のフレームに推移(next())してしまう。

なので、デフォルトカーソル処理はfscommand2コマンド発行の次フレームに、
それ以外は各フレームに書くようにする必要がある。

まったく糞だ。

0 件のコメント: