先日、とあるサイト内のFlashのデモを作成する。手元のマシン・ブラウザでは問題ないが、先方のPCだと、Flash部分が空白もしくは、1回だけ表示されるというような不安定な動作に。
ムービーとしては,A1.swf,A2.swfとファイルが2つあり、メインのswfが、その2つを交互に読み込んで再生。片方の再生が終わったら、もう片方を再生・・・と、特に難しいところも無いはず。
作成する時間が無かったので、loadMovieでswfを読み込んで、rootのonEnterFrameで再生フレームをチェックするという方法をとっていた。
手元では問題なかったので、そのままアップしたが、、なぜか先方では表示されないとの連絡あり。
Playerのバージョンの問題かと思ったがそうでもない。凝ったことはしてない故、原因が分からなくてしばしハマる。
nabeさんとSkypeで相談しながら、MovieClipLoaderに置き換えてみる。AS2.0はリスナーとスコープがAS3に比べてややこしいので、マンドクセ(´A`)手を抜いたのがトラブルの元だった。
MovieClipLoaderに修正したものは、先方のPCでもちゃんと表示された。
詳しく聞いてみると、以前のものでは、Flash部分が空白で、CPU負荷・メモリ消費も上がり、どうも暴走してるような感じだった・・・と。
詳しく検証してないけれど、この現象から想像するに、loadMovie後のフレームのチェックが、ロードが終わらないうちにやってしまい、正常に判断できず、(ロジック的に)次々のloadMovieされてしまい、無限にロードされてしまったような動きになったんじゃないかと思われる。
A1.swfもA2.swfもファイルサイズが小さかったので、ロードは一瞬で終わるだろうと高をくくっていたのがマズかった。
ロードが終わってないうちに次のロード、そのまた次のロードと、延々繰り返していたようだ。
ソースコードは恥ずかしすぎるので非公開です(///
教訓。
忙しくても(手を抜いて)loadMoiveは使ったりしない。
ちゃんとMovieClipLoaderを使おう!
Popularity: 13% [?]




