
ムック氏は、多くの人があまり認識していないような点については、いくつか強調して説明されました。
「これまでの知識は忘れてください。変数は、あるオブジェクトに対する参照でしかありません。」
「変数の参照が切れたオブジェクトは、すぐに消去されません。ガベージコレクションの消去サイクルが来るまで動作し続けるので注意。イベントなどはきちんと動作を停止させ
ておく必要があります。」
特にガベージコレクションの話はActionScirpt 3.0を始めたばかりの方々の頭を悩ませた部分であったのか、多くの来場者が大きくうなづいてました。以前、しっかり消さなかったがために同じイベントが何度も起こった痛い経験を思い出しましたのは筆者だけでは無いと思います。
自分で作ったclassファイル内の検索や移動が楽、ソースを追うデバッグ作業などにはかなり良い感じであると感じました(筆者はFlashのみ今まで利用している)
(「Flex Builder を利用するとエラーのチェックがすぐにできてメガすごい……いやキロすごい」との喜んだコメント(笑)も残しておりましたっけ。)
クラス名やメソッド名をクリックするだけで該当のソースに移動するし、メソッド名のリネームも一括で行えます。これは「テラすごい!」とムック氏はかなり褒めていました。
作業効率がかなり上がりそうです。
ActionScirpt 3.0のみならず、プログラミングに携わる開発者に必要なMVCの考え方もわかりやすく説明してくれました。
モデル(M)は、根幹となるロジカルシュミレーション。
ビュー(V)は、画面上の表示を扱う部分で、モデルからの通知を待つ。
コントロール(C)は、ユーザーからのインプットに関する部分。
「仮想動物園のペット(Stan君)のディスプレイへの表示と食べる、消えるなどの行動ロジックなど、別々の機能は切り分けてクラス化するべきです。しかも数千行単位にせずに、一つ一つのプログラミングのブロックは200~400行ぐらいずつとか、小さいパーツにする方が後の管理が楽になります。」
これらの概念は、プログラム上の「ルール」ではなく「アイデア」なので、自分に合うと思ったら使えば良いとのさりげないアドバイスもありました。
ロジック部によって変化した状態を表示部に反映するためには、「イベント」を使用します。
イベントには3つのものが必要です。
「イベントターゲット」…イベントが発生するオブジェクト。
「イベントリスナー」…イベントが通知される先。
そして「イベント」自体。
グラフィックを表示する作業に入るにあたり、コア表示クラスのツリーを見せるムック氏。「ここまでやってきたら怖くないでしょ?理解できるとおもう。」
表示リストに、新たに作った VirtualPetView クラスのインスタンスを加え、外部からロードした、ペットやエサのGIF画像を表示させます。
VirtualPetView クラスは、ペットの状態が変わるたびに表示を変更するクラスです。毎回表示リストを一新させる所が、非常にActionScript 3.0 的な動きです。
VirtualPet に、リンゴを与えるボタン(Feed Apple)と寿司を与えるボタン(Feed Sushi)のイベントを追加します。
……と、説明を続けつつなにやらボタンを連打して、エサを与え続けているムック氏。なんでも、ペットが死ぬのは非常に悲しいので、死なせるのは1回のセミナーで1回と決めているんだそうです。芸が細かい!と長時間のセミナーにも関わらず来場者から笑いが起きました。
意を決してボタンから手を離して数秒。おなかを空かせたペットは死んでしまったのでした。

[VirtualPet Stan君がお腹が空いて死んでしまいました]
以上、「今から始める ActionScript 3.0 - WORLD WIDE TOUR 」のレポートをお届けしました。今回のセミナーの内容に関しては、ムック氏のサイトにも詳細が載っています。あわせてご活用ください。(英文)
http://moock.org/lectures/groundUpAS3/
セミナー終了後もムック氏は、会場の時間いっぱいまで皆さんと談笑されていました。
そんな中、ヒム・カンパニーの永井勝則氏もいらして、今回のセミナーの元となったO’Reilly の「Essential ActionScript 3.0」の翻訳に関して、「鋭意作業中!」とのコメントもありました。2008年中旬には出版予定とのことですので、こちらも楽しみにまっておきましょう。