ReadWords mc について

出典: YKAwiki

目次

概要

このモジュール readWords_mc は Ruby で書かれた CGI readWords.cgi を呼び出し、返り値(データベースに入っている単語情報)を Flash 内部の変数に保存する。

単語登録時の重複を避けるために、単語名は登録されているもの全てを取得する必要がある。説明と参照ファイルへのパスはゲームで使用するために必要なぶん(時間設定にもよるが、100語程度?)だけ取得する。

また、ロード中に読み込みの進捗を表示するため、ローディング画面を表示するアニメーションを作成する。

CGI からエラーが返ってきた場合、または一定時間が経過してもローディングに進捗が無い場合は読み込みエラーを表示して停止する。

入出力と遷移

  • データベース名を引数にして、CGI へ HTTP メソッドを出力。
CGI へのパス、利用するデータベースはメインのムービークリップで取得済みである。
CGI から返ってくる値(単語名、説明文、参照ファイルへのパス)は、Flash 内の配列に文字列として保存。
読み込みに成功したらメインのムービークリップのタイムラインを進める。
失敗したらエラーを表示して停止する。

他のモジュールとの関係

このムービークリップ「を」呼び出すモジュール

このムービークリップ readWords_mc はメインのムービークリップのステージに配置する。

呼び出すタイミングはゲーム開始の前である。

このムービークリップ「が」呼び出すモジュール

readWords.cgi と、メインのムービークリップ

(余談) Flash とサーバプログラム

Flash からサーバプログラムを利用する方法は大きく分けて二つある。

  • ムービークリップ型に定義されているメソッドを利用して、HTTP の GET/POST 命令をサーバに送る
  • XML クラスに定義されているメソッドを利用して、ソケット通信を行う

今回は前者を利用するが、Flash でソケット通信を行っている例が極端に少ないのは何故だろう? 価格はそこそこ張るが、macromedia もサーバ用ソフトは用意している。 ごく小規模なブラウザ上でのオンラインゲームには最適なように思えるのだが、残念ながら 「プロジェクト街」ぐらいしか思い当たらない。