アクセシビリティ

コリン・ムックの「今から始める ActionScript 3.0 - WORLD WIDE TOUR」

Essential ActionScript 3.0


変数は参照でしかない[教材:[ copies and references multiple references to the same object]の章を参照のこと]

ムック氏は、多くの人があまり認識していないような点については、いくつか強調して説明されました。
「これまでの知識は忘れてください。変数は、あるオブジェクトに対する参照でしかありません。」 「変数の参照が切れたオブジェクトは、すぐに消去されません。ガベージコレクションの消去サイクルが来るまで動作し続けるので注意。イベントなどはきちんと動作を停止させ ておく必要があります。」
特にガベージコレクションの話はActionScirpt 3.0を始めたばかりの方々の頭を悩ませた部分であったのか、多くの来場者が大きくうなづいてました。以前、しっかり消さなかったがために同じイベントが何度も起こった痛い経験を思い出しましたのは筆者だけでは無いと思います。

オーサリング環境からクラスファイルを呼ぶには[教材:[compiling in Flash CS3]、[Flex Builder: code preparataion]以降の章を参照のこと

  • Flash
    ドキュメントプロパティの、「ドキュメントクラス」の部分でメインクラスを指定。(Flashで、ライブラリシンボルをサブクラスとして使用できるのは「ギガスゴイ!」とのこと。コリン氏もお気に入りの機能のようです。「他にはない機能」であるとのコメントも。)
  • Flex Builder
    メインクラスは、Flashの場合と違って、zooなどのパッケージ内に置かない。

ここからは、Flex Builder を利用した説明が始まります。

自分で作ったclassファイル内の検索や移動が楽、ソースを追うデバッグ作業などにはかなり良い感じであると感じました(筆者はFlashのみ今まで利用している) (「Flex Builder を利用するとエラーのチェックがすぐにできてメガすごい……いやキロすごい」との喜んだコメント(笑)も残しておりましたっけ。)
クラス名やメソッド名をクリックするだけで該当のソースに移動するし、メソッド名のリネームも一括で行えます。これは「テラすごい!」とムック氏はかなり褒めていました。 作業効率がかなり上がりそうです。

MVC(Model View Control)について [教材:[managing display]章を参照のこと]

ActionScirpt 3.0のみならず、プログラミングに携わる開発者に必要なMVCの考え方もわかりやすく説明してくれました。
モデル(M)は、根幹となるロジカルシュミレーション。
ビュー(V)は、画面上の表示を扱う部分で、モデルからの通知を待つ。
コントロール(C)は、ユーザーからのインプットに関する部分。

「仮想動物園のペット(Stan君)のディスプレイへの表示と食べる、消えるなどの行動ロジックなど、別々の機能は切り分けてクラス化するべきです。しかも数千行単位にせずに、一つ一つのプログラミングのブロックは200~400行ぐらいずつとか、小さいパーツにする方が後の管理が楽になります。」
これらの概念は、プログラム上の「ルール」ではなく「アイデア」なので、自分に合うと思ったら使えば良いとのさりげないアドバイスもありました。

イベントについて[教材:[events and event handling]章を参照のこと]

ロジック部によって変化した状態を表示部に反映するためには、「イベント」を使用します。
イベントには3つのものが必要です。
「イベントターゲット」…イベントが発生するオブジェクト。
「イベントリスナー」…イベントが通知される先。
そして「イベント」自体。

ActionScript 3.0 のグラフィック[教材:[graphics!] 以降の章を参照のこと]

グラフィックを表示する作業に入るにあたり、コア表示クラスのツリーを見せるムック氏。「ここまでやってきたら怖くないでしょ?理解できるとおもう。」
表示リストに、新たに作った VirtualPetView クラスのインスタンスを加え、外部からロードした、ペットやエサのGIF画像を表示させます。
VirtualPetView クラスは、ペットの状態が変わるたびに表示を変更するクラスです。毎回表示リストを一新させる所が、非常にActionScript 3.0 的な動きです。
VirtualPet に、リンゴを与えるボタン(Feed Apple)と寿司を与えるボタン(Feed Sushi)のイベントを追加します。

……と、説明を続けつつなにやらボタンを連打して、エサを与え続けているムック氏。なんでも、ペットが死ぬのは非常に悲しいので、死なせるのは1回のセミナーで1回と決めているんだそうです。芸が細かい!と長時間のセミナーにも関わらず来場者から笑いが起きました。
意を決してボタンから手を離して数秒。おなかを空かせたペットは死んでしまったのでした。

Stan君

[VirtualPet Stan君がお腹が空いて死んでしまいました]

質問にこたえて

質問にこたえて
Q.Macintosh と Windows 、OSはどちらが好きですか?
「どちらもあまり好きではないです(笑)。私は書籍を書く上で、ずっとタイプし続けると腕が死んでしまうので、音声入力補助ツールを利用することが多いのですが、そのツールの対応OSがWindowsなので Windows を多く使っています。(今回のセミナーはMacで実施)」
Q.ActionScript のコーディングにはFlash/Flexどちらが最適なのでしょうか?
「Flashはグラフィックシンボルのに長けたツール、Flexはコーディングに長けたツール、私はどちらも利用します。」
Q.ActionScript 3.0 では、ライブラリシンボルはそれぞれを別のクラスとして new しなければならないが、画像を多数表示したい時などに便利な方法はある?
[AS3] クラスを複数のMovieClipシンボルに設定したい(ムック氏の回答)
[AS3] クラスを文字列で参照したい(野中氏の回答)

最後に

以上、「今から始める ActionScript 3.0 - WORLD WIDE TOUR 」のレポートをお届けしました。今回のセミナーの内容に関しては、ムック氏のサイトにも詳細が載っています。あわせてご活用ください。(英文)
http://moock.org/lectures/groundUpAS3/

セミナー終了後もムック氏は、会場の時間いっぱいまで皆さんと談笑されていました。
そんな中、ヒム・カンパニーの永井勝則氏もいらして、今回のセミナーの元となったO’Reilly の「Essential ActionScript 3.0」の翻訳に関して、「鋭意作業中!」とのコメントもありました。2008年中旬には出版予定とのことですので、こちらも楽しみにまっておきましょう。