[ AS3 ]
非Progressionで初めのフレーム容量を軽くする - 09/01/30 15:14 by umroom
Progression だと、プリローダーを作ってくれるから、クラスの書き出しフレームについて深く考える事は無くていい。
クラスの書き出しが初めにあると(最初のフレームに書き出しってやつ)ローディングバーが出る時には既に全体容量の大部分がロード済みで、バーは出たとたんに用済みになることがある。それでは意味が無い。
Progression を使わない(使えない)とこういう所をどうするか考える必要が多かれ少なかれあるので、以下に自分が現在やってることをメモがてら、紹介がてら書いておく。
※ドキュメントクラスを使うことが前提。フレームに書くのはせいぜい stop() のみ。ローディングバーにもasファイルを作成する。
まずやってる事を列挙。
1、パブリッシュ設定で、フレーム内書き出しを2以降にする。
2、シンボルの最初のフレームに書き出しのチェックを外す。
3、root(メイン)タイムラインにシンボルを多く置かない。
4、ドキュメントクラス内でのroot(メイン)タイムラインに置くシンボルの型は何であれ Object にする。
以上。つづいてそれぞれの解説を。
1、パブリッシュ設定で、フレーム内書き出しを2以降にする。
1のままだと、1フレームが始まる前にクラスを読み込んでしまうので2以降にする。3フレームにしておくと気持ち余裕があっていい。
ローディングのシンボルを設定したフレームに置く。このフレームの後だとロードの意味が無く、前だとエラーが出る。
2、シンボルの最初のフレームに書き出しのチェックを外す。
まさにそのまま、「最初のフレームに書き出し」のチェックを外すだけ。
ステージに配置しないで new でインスタンス化するものは注意。事前にステージの見えない部分に配置する等忘れない事。
3、root(メイン)タイムラインにシンボルを多く置かない。
基本、メインには1で置いたローディングのシンボルとコンテンツが入ってるコンテナの2つしか置かない(ロード時から表示する必要のある背景などは置くけどね)。なので、コンテンツ的にはコンテナが root のような物になる。
コンテナは MovieClip か、必要があれば拡張した独自クラスにする。
3フレームにローディングのシンボル。4フレームにコンテナのシンボル。という具合である。
4、ドキュメントクラス内のrootタイムラインに置くシンボルの型は何であれ Object にする。
1、2でクラス書き出しを最初にやらない様にしているため、インポートの必要がある独自クラス(ローディングバーなど)をインポートすることは出来ない。型を未記入でもいいけど気持ち悪いので Object としておく。
また、3で、root にはシンボルをあまり置かないと書いたけど、Object 型がズラっと並ぶと個人的に精神衛生上よくないからである。他にも、root の役割は「ロード〜コンテンツ開始」の流れを作るだけで、コンテンツの中身についてはコンテナが持っていればいいと思ってるから、ドキュメントクラスに余計な物を書きたくないのである。
(root.hoge というようにアクセスすることが頻繁にある or 便利な変数、関数についてはドキュメントクラスに書く。)
以上から流れは、
1フレ:何も無い
2フレ:何も無い
3フレ:rootタイムラインストップ&ロード開始。終わったら4フレへ。
4フレ:コンテンツ開始
という具合になる。
AS2 の頃の我流テクニックを AS3 にアレンジしただけだから、不十分な可能性も、もっと良いやり方もあると思ってる。
やっぱりプリローダーは便利である。
プリローダー& getDefinitionByName の組み合わせは強力だな。
« [ AS3 ] swf領域からのマウスアウト取得 | ブログトップ | [ wonderfl ] colorTransformでwonderflデビュー »
トラックバックURL :