タイムライン全体の読み込みが終了するまで現フレームで待機、ロードが終わったら"s1"フレームへ再生を開始する、という、いわゆるnow loading...な事をAS3でやるにはこんな感じでした。
本編が始まるキーフレームに"s1"という名前でラベルをつけておき、1フレーム目にこんなスクリプトを書いてみます。
stop(); //ムービー停止
var tf:TextField = new TextField(); //テキストフィールドオブジェクトを作る
addEventListener(Event.ENTER_FRAME, function(e:Event):void { //イベントリスナ定義
var loaded_per:int = loaderInfo.bytesLoaded / loaderInfo.bytesTotal * 100; //ロード率
if (loaded_per >= 100) { //ロードが完了したら
tf.visible = false; //テキストフィールドを非表示
this.removeEventListener; //イベントリスナ削除
gotoAndPlay("s1"); //本編再生
} else {
tf.text = "Loading: " + String(loaded_per) + "%"; //進捗率をテキストフィールドに代入
}
}
);
addChild(tf); //進捗率をステージに表示
データのロード中は、動的に生成したテキストフィールドにロード率を表示させていて、enter frameのタイミングで描画を更新するようにイベントリスナに仕込む、という形にしてあります。
AS2まででいうところの、getBytesLoaded()とかgetBytesTotal()の在処がわからなくてハマったですよ。確かに系統的には整理されてる感があるけど、色々覚え直すことがやはり多いです。。
