MEMOUK

フレームスクリプトが書かれていると、外部ActionScriptの実行タイミングが変わる

レアケースなのですが、再現性があるのでメモ

・外部ActionScriptのコンストラクタ内での処理

・フレームの絵の描画

そのMCの置いてあるフレームにある
・フレームスクリプト
の有無によって、順番が変わってしまう
という現象です。

すごく文章で説明しづらいので、サンプルを見てください

ファイルをダウンロード

コンストラクタにはこのように書いてあります


class Test extends MovieClip{
public function Test(){
trace("Test");
_alpha = 0;
}
}

本来、予想される正しい動作はMC置いてあるフレームに到達したときには「見えない」です。

ところが、

●test1.fla
ボタンクリックでMCがいるフレームに飛ばしているのですがチラっと見えます。

●test2.fla
そのフレームスクリプトにコメントをいれるとなぜか直ります。

●test3.fla
タイムラインのみで作ればちゃんと動きます。


本来は画面描画の前にコンストラクタが実行されるはずなのですが、中途半端に内部スクリプトと外部スクリプトを併用すると、上記のような振る舞いになってしまいます。

仕様というかバグというか、一定して上記のように動くので回避方法としてはこういう場面を作らないことが一番です。


以下kaniくん考察〜〜
どうもtest1.flaではフレームの移動がエンターフレームベースで非同期になり実行順序がばらつくみたいです。
コメントとを入れる場合は、そのフレームにActionScriptがあると考えて実行順序を守ります

test3.flaは普通にアニメーションをタイムラインベースで流してるので実行順序は守られています
〜〜〜〜


レアケースの話でした

Posted by uk at 01:55 | パーマリンク | コメント (0) | トラックバック (0)

【ロクナナワークショップ無料受講チケット付き】Adobe CS5 Master Collection 製品版が361,000円(税込)

bnr_adobecs5.gif dis_wimax_io-data.gif

このエントリーのトラックバックURL:
http://www.67.org/blog/mt-tb.cgi/1089

コメントを投稿

MEMOUKROKUNANA

SITE FEED

複数割 最大23%オフ

 

10000円キャッシュバック

Search