いよいよ、フロント・エンド・プログラムを完成させます。
ここまでに作成した、フロントエンド部分とサーバーCGIを結合します。 Flexから、サーバーの呼び出しは、 URLLoaderを使ってサーバーにメッセージを送ります。
ネットワーク通信をするため、ここまでは、適当に処理を書き並べていた 部位についても、同期、非同期を意識した構造にしなければなりません。 Flashでは、一般のゲームプログラミングで使う描画単位のFrame毎の処理 が可能ですので、これをうまく活用してMainの処理Functionを作ります。
ネットワークへ投げたリクエストや、マウスからのイベントも、イベント 処理Functionがコールバックされる形で、結果が非同期に上がってきます。 これらのイベントが上がる度に、システム内の状態を変更して、中心となる Frame処理Functionの中で、状態を見ながら適切な処理をするようにプログラム を記述します。
ネットワーク通信がうまくいくかは、機能を書き加えたり、変更が加わる度に、 サーバーとの動作を確認しなければなりません。 ですので、ここでのプログラム作成は、 前回分[nimをプレーするコンピューター・プログラム(8)]と併せて作業する ことになります。
オブジェクト間の同期の関係で、修正が必要になるクラスもあります。 これらも、全体の動作を確認しながら徐々に修正を進めていきます。
最後に、mxmlによるメニュー部分とActionScriptのプログラムのデザインを 調整します。表示箇所の変更は、プログラム構造に影響がないかぎり、 できるだけ後回しにするようにします。
./main.mxml ./nim/ ./nim/NimUI.as ./nim/Nimboard.as ./nim/NimServer.as ./nim/Stone.as
前回同様、コンパイルはFlex3のコンパイルコマンドmxmlcを使ってコンパイルします。
mxmlc -debug=true -incremental=true main.mxmlc
...つづく (2009/6/1)