[Alapo]


#navi(nimをプレーするコンピューター・プログラム)
** 構築5 [#acdaa6d2]

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

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

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

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

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

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


:&ref(main.mxml);|デザイン上のマイナー修正をしています。ゲームの進行や結果がわかりやすくなるようメッセージの変更をしました。
:&ref(NimUI.as);|大きな変更はありません
:&ref(Nimboard.as);|ゲームシステムの中核となって、毎フレームの処理が入っています。今回、もっとも大きな修正をしたソースです。
:&ref(Stone.as);|アニメーションパターンを修正しました。オブジェクトの初期化仕様の変更などがあります。
:&ref(NimServer.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 [#v8d5eebf]
#related

* Feedback [#u1caae51]
&facebooklike(400x200,action="like",scrolling="yes",show_face="true",layout="standard",colorscheme="light",align="right",float="right",rlmargin="10");
&facebooklike(400x180,action="like",scrolling="yes",show_face="true",layout="standard",colorscheme="light",align="right",float="right",rlmargin="10");
#vote(おもしろい[0],役に立つ[0],興味ない[0],理解できない[0],やってみたい[0],食べてみたい[0])
#pcomment_nospam(noname)

TOP   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   [Privacy Policy]