やっと「そうめん」触ったよ(10) -実践篇 4.-
2008/11/06 20:45 - AS3.0
3回前の「実践篇 1.」で作った「そうめん」による実装コードを、前々回、前回と少しずつ改造した結果が以下のプロジェクト一式になります。
前回の冒頭で述べたとおり、ここで、このプログラム一番最初の処理であるステージ領域クリック待ちの部分に少し補足説明を加えます。
<最初の「そうめん」実装 MainThread> private function step1():void { trace('step1 : Mouse.CLICK'); event(container.stage, MouseEvent.CLICK, step2); }
<改変後の「そうめん」実装 MainThread> private function step1():void { trace('step1 : Mouse.CLICK'); var wcth:WaitClickThread = new WaitClickThread(container); wcth.start(); wcth.join(); next(step2_0); }
上記はそれぞれのステージ領域クリック待ちにかかるコードです。
改変後の方がコード行数増えてるじゃねーか! めんどくさいだのラクしたいだの言っといてコレか! というご意見もありましょう。
でもこっちの方が大局的見地に立つと、ゆくゆくはラクになるであろうと考えてます。 以下を見てください。
private function step2():void { trace('step2 : URLLoader'); tlth = new TextLoaderThread(fileName); tlth.start(); tlth.join(); next(step3); } private function step3():void { trace('step3 : Loader'); ilth = new ImageLoaderThread(tlth.data); ilth.start(); ilth.join(); next(step4); }
これはテキストおよびイメージのロードにかかる部分です。 これらの処理は最初のコードも改変後のコードも変わらず、以下のような構造をしています。
private function 某 { スレッドインスタンス = new スレッド(); スレッドインスタンス.start(); スレッドインスタンス.join(); next(次に実行したい関数名); }
「そうめん」によるメソッドの最低限の処理はこれで成立しそうです。
つまりこの4行は最小単位のフォーマットと捉えることが可能なんじゃないでしょうか。
だからこのフォーマットに合致するようにカスタムスレッドを作っておけば、呼び出し側の記述はコピペで済んじゃうという寸法。
ひとつふたつではありがたみもないけれど、ほとんどすべてのカスタムスレッドの処理を、このフォーマットで収まるように書いておけば、のちのちけっこうラクになるんじゃないかなー、と思います。
同じフォーマットなら順番入れ替えが発生したときも簡単ですよ。 next(○○)の○○を書き換えればいいだけだから。 んなわけでフォーマットを揃えておけば、いろいろな方面で、何かと便利なんじゃないでしょうかね。