Amazonでボードゲームを探す

構築5

いよいよ、フロント・エンド・プログラムを完成させます。

ここまでに作成した、フロントエンド部分とサーバーCGIを結合します。 Flexから、サーバーの呼び出しは、 URLLoaderを使ってサーバーにメッセージを送ります。

ネットワーク通信をするため、ここまでは、適当に処理を書き並べていた 部位についても、同期、非同期を意識した構造にしなければなりません。 Flashでは、一般のゲームプログラミングで使う描画単位のFrame毎の処理 が可能ですので、これをうまく活用してMainの処理Functionを作ります。

ネットワークへ投げたリクエストや、マウスからのイベントも、イベント 処理Functionがコールバックされる形で、結果が非同期に上がってきます。 これらのイベントが上がる度に、システム内の状態を変更して、中心となる Frame処理Functionの中で、状態を見ながら適切な処理をするようにプログラム を記述します。

ネットワーク通信がうまくいくかは、機能を書き加えたり、変更が加わる度に、 サーバーとの動作を確認しなければなりません。 ですので、ここでのプログラム作成は、 前回分[nimをプレーするコンピューター・プログラム(8)]と併せて作業する ことになります。

オブジェクト間の同期の関係で、修正が必要になるクラスもあります。 これらも、全体の動作を確認しながら徐々に修正を進めていきます。

filemain.mxml
デザイン上のマイナー修正をしています。ゲームの進行や結果がわかりやすくなるようメッセージの変更をしました。
fileNimUI.as
大きな変更はありません
fileNimboard.as
ゲームシステムの中核となって、毎フレームの処理が入っています。今回、もっとも大きな修正をしたソースです。
fileStone.as
アニメーションパターンを修正しました。オブジェクトの初期化仕様の変更などがあります。
fileNimServer.as
CGIと通信するためのインターフェース部分。ネットワーク処理は、この中でおこないます。ただし、同期通信が必要な箇所は、このオブジェクト内にイベントハンドラを持たずに、上位のクラス内で処理するようにしています。

最後に、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)

SEE ALSO

Last-modified: 2014-08-23 (土) 17:58:51