LITTLE CLAP
開発中メモ 2011/12/--
 FlashDevelop、ActionScript3.0(AS3)、VisualC++、Java等で開発中に起きたことの覚書。必ずしも正確な情報ではないため注意が必要。
プリローダ
 容量の大きなswfを作成したときのためにプリローダのテストを行う。
 数値だけを表示する簡易的なプリローダを作成し既存のプロジェクトに自前で実装するが、全てダウンロードするまでプリローダも起動しない。ダミーデータで容量を増やす、遅いサーバを経由する、キャッシュをクリアする等何をやってもダメ。
 FlashDevelopのAS3 Project with Preloaderプロジェクトを使用すると正常に動作する。どこが異なるのかソースコードを少しずつ動作チェックをするが、ほぼ全てコメントアウトしても自前の方だけが動作しない。
 3時間以上頭を抱えてようやくたどり着いた結論は、HTML側の記述に問題があるということだった。
<object data="PreloaderTest.swf" width="512" height="384" type="application/x-shockwave-flash">
<param name="movie" value="PreloaderTest.swf" />
<param name="quality" value="low" />
<param name="allowFullScreen" value="true" />
</object>
 JavaScriptによるブラウザ判定を必要とせず、パラメータも重複せずにHTML内に書くことができる便利なテンプレートだと思っていた。しかし、唯一重複しているswfパス名こそが致命的だった。
 テスト環境では未だにInternet Explorer6.0を使用している。そのIEではparamタグのパス名が使用され、その他のブラウザではobjectタグのパス名が使用される。当然IEでの起動はparamタグが利用されるが、先に記述されたobjectタグのパス名の方が先に全て読み込まれてしまうかのような挙動をしている。dataを削除するとプリローダも動作する。
 結局HTMLの便利さの方を優先させ、プリローダの実装は諦めることにした。どうしても必要な場合はswfをロードするだけのswfを外側にラッピングすることにする。
タイトル
 内容
inserted by FC2 system