- 2008-07-14 (月) 14:02
- ActionScript3.0 | Progression
Progressionで新規プロジェクトを作成すると自動的に生成されるpreloader.flaとPreloader.asファイルを使って、簡単なプリローダーを作ってみた。
手順としてはこんな感じ
- preloader.flaでMovieClipシンボルを作成
- 作成したシンボルにインスタンス名をつける
- Preloader.asファイルにスクリプトを記述
★1〜2・MovieClipシンボルを作成し、インスタンス名をつける
- (矩形ツールを使って)barというMovieClipシンボルを作成
- LoaderというMovieClipシンボルを作成
- Loaderのシンボルの中に、barを配置(barのインスタンス名:barとしておく)
- barの下あたりに、テキストエリアを作成(ダイナミックテキストでインスタンス名:status_txtとしておく)
- Loaderをステージに配置(インスタンス名:_preloaderとしておく)
★3.Preloader.asファイルにスクリプトを記述
package {
import flash.display.StageAlign;
import flash.display.StageQuality;
import flash.display.StageScaleMode;
import flash.display.MovieClip;
import jp.nium.display.ExPreloader;
import jp.progression.commands.*;
//Preloader クラス
public class Preloader extends ExPreloader {
//ステージ上の_preloaderを取得する
public function get loader():MovieClip{
return MovieClip(this.getChildByName("_preloader"));
}
//コンストラクタ
public function Preloader() {
// 読み込み先 URL の指定
url = "index.swf";
//読み込み前のbarの設定
_preloader.bar.scaleX = 0;
}
//読み込み完了後に実行
protected override function _onInit():void {
// stage の初期設定を行います。
align = StageAlign.TOP_LEFT;
quality = StageQuality.HIGH;
scaleMode = StageScaleMode.NO_SCALE;
}
//ロード操作が開始したときに実行
protected override function _onOpen():void {
_preloader.status_txt.text = "データを読み込んでいます";
}
//ダウンロード処理を実行中にデータを受信したときに実行
protected override function _onProgress():void {
_preloader.status_txt.text = Math.floor((bytesLoaded / bytesTotal) * 100) + "%";
new DoTweener(_preloader.bar,{
scaleX:bytesLoaded / bytesTotal,
time:1.0
}).execute();
}
//データが正常にロードされたときに実行
protected override function _onComplete():void {
_preloader.status_txt.text = "データの読み込みが完了しました";
closeHandler();
}
//読み込みが終わったら、_preloaderを非表示に
private function closeHandler():void{
_preloader.visible = false;
}
//入出力エラーが発生してロード処理が失敗したときに実行
protected override function _onIOError():void {
_preloader.status_txt.text = "データの読み込みに失敗しました";
}
}
}
パブリッシュを行うと、プリローダーが一瞬だけ表示されるかと。きちんと確かめたい時は、表示→ダウンロード設定の後、ダウンロードのシュミレーションを行うと、プリローダーがきちんと動作しているのが分かります。
上記の手順はWindows環境だときちんと動作しましたが、Mac(PowerMacG5、OS:Tiger)環境で実行すると、以下の様なエラーが出力パネルに表示されました。
Error #2044: ハンドルされていない ioError : text=Error #2036: 読み込みが未完了です。 URL: file:///Macintosh%20HD/Users/adminstrator/Desktop/example/deploy/index.swf
一応プリローダー自体は動作はするので、問題ないかとは思うんですが、何故同じスクリプトを実行して、Mac環境だとエラーが表示されるのかは、不明です。
- Newer: 画像を適用させてみる
- Older: ごはんとFlash2杯目に参加します!
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://flabaka.com/blog/wp-trackback.php?p=138
- Listed below are links to weblogs that reference
- ExPreloaderを使ってみる from flabaka
