Flashは動き始めるまでにダウンロードが完了しているとは限らない
以前からたまに、COSUMIのオンライン対局のFlashが動かない時があってちょっと気持ち悪く思っていたのですが、ようやくその原因が分かりました! どうやら、自身のswfファイルのダウンロード完了を待たずして動き始めたFlashが、まだダウンロードできてない部分のデータを必要として問題が起こっていたようです(なので、ブラウザがそのswfファイルをキャッシュに持っている時は問題が出なかった)。うーん、Flashというのは、ファイルがすべてダウンロードされてから動き始めるわけではないんですね! 一度分かってしまえばごくごく単純なことなんですが、Flashは最近初めたばかりなので、このあたりの基本がなってませんでした…
ということで、今回はMovieClip.getBytesLoadedとMovieClip.getBytesTotalを使って、自身のswfファイルのダウンロードが完了するまでは、メインの動作を始めないように直しました。たぶんこれで大丈夫だと思います。
回線の速度やブラウザの種類、それからPCのスペックなども関係してくると思うので、はっきりしたことはよく分かりませんが、今までどれくらいの確率で動かなかったのかを考えるとめちゃくちゃ恐ろしい…(笑)