やっと「そうめん」触ったよ(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 で済むようになりました。
続く。