あるフォトライブラリをflash(AS2)でつくり、写真の読み込みに若干時間がかかるため、ローディングバーを設置。
ところが、ローディングバーが表示されない状態でswfはどんどん読み込まれ、一瞬100%の状態のローディングバーを表示した後(1コマ)、フォトギャラリーがスタートしてしまうという現象が。
色々探した結果、見つかった答えがこれ。
どうやら同じローディングバーのサンプルをカスタマイズして使っていたことから答えにたどり着きました。
リンケージ登録で、「最初のフレームに書き出し」にチェックしていると、ローディングバーのMCが表示されるよりも前にロードされてしまいます。 「リンケージシンボルのロード」→「ローディングバーの表示」 なので、ローディングバーが途中から始まってしまいます。 これを防ぐ方法としては、「最初のフレームに書き出し」のチェックを外し、ルートのフレーム2に空のMCを作り、その中に、リンケージしたシンボルを全部、MCならステージ上に配置、複数のサウンドならレイヤーを作りまくってタイムラインに貼付けしておきます。 1フレーム目のローディングバーでプリロードが完了したら、リンケージ置き場としての2フレーム目をスキップし、3フレーム目以降に gotoAndPlayさせます。http://www.trick7.com/blog/2006/09/06-001951.php
リンケージの設定についてはFN0501001 - コンポーネントとActionScript 2.0クラスの書出しフレームを変更する - Flash : テクニカルノートを参照すればよくわかります。
コンポーネントおよびシンボルの[リンケージ]は、[ライブラリ]のオプションポップアップメニューから[リンケージ]を選択して、[リンケージプロパティ]ダイアログポックスで設定します。もっとも、[最初のフレームに書き出し]のチェックボックスがあるだけで、書出しフレーム番号を設定する場所がありません。[最初のフレームに書き出し]のチェックを外した場合には、フレーム番号をダイアログボックスで設定するのではなく、書出したいフレームにインスタンスを直接配置して指定するのです。インスタンスを配置する場所は、ステージの外でも構いません。
以上メモ!
flashは楽しいけど疲れるなー 色々と。


