Flashの案件で必須になるプリローダー。
外部化したファイルを読み込むローダーは、Loaderクラスを利用すればいいだけだけど
rootを読み込むプリローダーは?
まぁローディング処理だけのswfファイルを作って「loader.swf」とかにすりゃよさそうだけど
簡単なFlashムービーなど、swfファイルが1個で済むような場合
そんなまどろっこしいことしたくないよー
てことで
作ってみました。
//------------------------------------- 2009/4/28日追記 -------------------------------------//
結構リクエストがあったんで、Flaファイルもアップしてみた。
//SWFファイル容量取得
var totalBytes:uint = this.loaderInfo.bytesTotal;
//イベントハンドラ設定
this.addEventListener(Event.ENTER_FRAME, loader);
//▼関数定義
function loader(evt:Event) {
var loadPer:uint = Math.floor(this.loaderInfo.bytesLoaded / totalBytes * 100);
par.text = loadPer;
bar_mc.scaleX = loadPer/100;
if (loadPer >= 100) {
this.removeEventListener(Event.ENTER_FRAME, loader);
parent.nextFrame();
}
}
bar_mc.scaleX = 0;
stop();
1フレーム目にローダー用のMCを配置して、そのMCのタイムラインにコードを書いてます。
そうすれば、シンボルのコピペでそのまま使いまわせるってわけ。
//------------------------------------- 2009/2/26日追記 -------------------------------------//
ちょっと質問が来て、確かにこの書き方じゃ分かりづらいかなぁって事で、追記
上のソースは、1フレーム目に配置してある、ローダー用のMCの中に書いてます。
んで、「par」というインスタンス名のダイナミックテキストと、左端に基準点を置いた「bar_mc」というローディングバー用のインスタンスを配置してあります。
また、 「loaderInfo」プロパティは、「stage」クラスのプロパティで、
stageのloaderInfoプロパティの説明には ---------------------------------------------------------------------------------------------------------------------------------------
この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。 loaderInfo プロパティは、SWF ファイルのルート表示オブジェクト用、 または(ActionScript を使用して描画されるビットマップではなく)読み込まれるビットマップ用として定義されています。 ---------------------------------------------------------------------------------------------------------------------------------------
とあるので ローディングバーのムービークリップの中にコードを書いても このムービークリップ(表示オブジェクト)が属するファイル(root)の読み込み情報は ムービークリップ内からthisで取得できるのです。
なので、このシンボルをコピペすれば、使い回しが出来るってわけ。

引用元はココ↓
http://www.flash-jp.com/modules/newbb/viewtopic.php?post_id=33538&topic_id=6612&forum=20




最近のコメント