IfElseコマンドとForLoopコマンドを元に、WhileLoopコマンドを作ってみた。
Progression Frameworkで、条件を満たすまでコマンドを繰り返し実行してくれる「WhileLoop」コマンドがあれば便利だろうなと思い、IfElseの条件関数に関する処理と、ForLoopの繰り返しテクニックを元に実装してみた。主な目的はLoadURLコマンドでデータがロードし終わるまでTweenerを動かし続けたいと言う考えから来ていて、その他の処理に関するテストは一切してないけど。
■使い方
今回は、あらかじめ作成しておいた「LoadURLById」コマンド(error関数つき)を使って、ロード中にTweenerでアニメーションしながら待つと言う処理を書いてみた。
new ParallelList(0,
new LoadURLById("id1", new URLRequest("http://~~")).error(
function():void {
//エラー時はシーン移動
new Goto(new SceneId("/index/load_error")).execute();//エラー時用のシーン「/index/load_error」に移動
}),
new WhileLoop(function():Boolean {
var data:Object;
data = LoadURLById.getDataById("id1");
trace(data);
return isCurrent && data == null;//データの読み込み完了時及びシーン移動時にfalseになり、ループ終了
},
new SerialList(0,
new DoTweener(messageField, { alpha:1, time:0.75, transition:Equations.easeInQuad } ),
new DoTweener(messageField, { alpha:0, time:0.75, transition:Equations.easeInOutQuad } )
)
)
)
new LoadURLById("id1", new URLRequest("http://~~")).error(
function():void {
//エラー時はシーン移動
new Goto(new SceneId("/index/load_error")).execute();//エラー時用のシーン「/index/load_error」に移動
}),
new WhileLoop(function():Boolean {
var data:Object;
data = LoadURLById.getDataById("id1");
trace(data);
return isCurrent && data == null;//データの読み込み完了時及びシーン移動時にfalseになり、ループ終了
},
new SerialList(0,
new DoTweener(messageField, { alpha:1, time:0.75, transition:Equations.easeInQuad } ),
new DoTweener(messageField, { alpha:0, time:0.75, transition:Equations.easeInOutQuad } )
)
)
)
途中に出てくるmessageFieldは、「NOW LOADING」を表示するCastSpriteオブジェクトです。
- ページ:
- 1
- 2
カテゴリ:ActionScript | Progression



