やっと「そうめん」触ったよ(9) -実践篇 3.-
2008/11/05 21:45 - AS3.0 超初心者のメモ
前回は、「ステージ領域がクリックされるのを待つ」というアクションをカスタムスレッド化し、それに伴い MainThread の記述がどう変わるのかを示しました。
ここいらへんは今少し解説を加える必要を感じますが、他にも手を入れたい部分があるので、あとでまとめて記します。
今回はテキストとイメージのローディング周りで、ちこっと手を加えます。
ボクってば面倒臭さがり屋さんなので、LoaderThread() や URLLoaderThread() の引数に URLRequest() を記述することすらめんどくせぇ。 ああ〜いやだいやだ〜。
あんまり面倒臭がっていると世紀末救世主に秘孔「喘破」を突かれるのでこの程度にしときますが、LoaderThread() と URLLoaderThread() を継承させて、引数が String で済むイメージローダースレッドとテキストローダースレッドを作ろうと思います。
作ろうと思いますってほど大したコードを記述するわけでもありません。 コンストラクタの簡単なコードと、あと、返り値として content と data を loader.○○ではなく、そのまま参照できるようにしただけ。
それぞれコードは以下のとおり。
それともうひとつ。
テキストファイル名を決定する部分を独立したメソッドとします。 本稿の最初に書いた「今少しの解説」を分かりやすくするための処置。
以下、MainThread のメソッド分割とテキストロードに関わる部分の抜書き。
<前回>
private function step2(e:MouseEvent = null):void {
trace('step2 : URLLoader');
if (cnt > 2) {
trace('end');
return;
}
var fileName:String = '../txt/' + String(cnt) + '.txt';
cnt++;
ulth = new URLLoaderThread(new URLRequest(fileName));
ulth.start();
ulth.join();
next(step3);
}
<今回>
private function step2_0():void{
trace('decide load filename / end');
if (cnt > 2) {
trace('end');
return;
}
fileName = '../txt/' + String(cnt) + '.txt';
cnt++;
step2();
}
private function step2():void {
trace('step2 : URLLoader');
tlth = new TextLoaderThread(fileName);
tlth.start();
tlth.join();
next(step3);
}
上記のとおり step2() メソッドを、ファイル名決定部分の step2_0() とスレッドによるローディングの step2() に分割しました。
あえて書いてませんが、今回のコードでは fileName はメンバプロパティになっていますよ。 なお、新しいイメージロードに関わる部分は<今回>の方の step2() メソッドと同じなので省略。
これでローディングスレッドの引数が new URLRequest(fileName) ではなく fileName で済むようになりました。
続く。



