ドキュメントクラスの設定とイベント処理
今回のサンプルは?
前回の「第3回:カスタムクラスの作成とMouseEvent(http://www.thinkit.co.jp/article/78/3/)」では、カスタムクラスとライブラリシンボルの関連付けや、ユーザーイベントについて紹介しました。今回は、前回培ったユーザーイベントと、新しくシステムイベントを交えてサンプルを紹介します。
今回のサンプルを見てみましょう(図1)。まずはこちらからサンプルをダウンロード(http://www.thinkit.co.jp/images/article/78/4/7841.zip)してください(7841.zip/9.30 KB)。
このように、サンプルではマウスの軌道に沿ってさまざまな色の円が描画され、その円は大きくなっていきます。そしてある程度大きくなったところで、円は消えます。
ドキュメントクラスとクラスパス
サンプルのコードを解説する前にドキュメントクラスとクラスパスについて紹介します。
ドキュメントクラスとは、ActionScript 3.0から導入された新しい機能で、メインタイムラインに関連付けることができるクラスです。パブリッシュされてムービーが再生すると、Flashはドキュメントクラスのインスタンスが自動的に生成されます。ドキュメントクラスを使用するためには、MovieClipクラス、またはSpriteクラスを継承し、importする必要があります。
一方、クラスパスはほかのフォルダにASファイルを格納したい場合に、該当するフォルダまでの相対または絶対パスを指定します。クラスパスを通すことで、ASファイルのみをフォルダにまとめることもできます。
ドキュメントクラスやクラスパスを設定する場合、Flashファイルをあらかじめ保存してください。保存されていない場合、Flashが自分の位置を特定できず、パスを検索できないためです。
それではASファイル「Root.as」「CreateCircle.as」を見ていきましょう。
今回のサンプルのRoot.asは、ドキュメントクラスに設定してあるクラスです。ムービーが再生された瞬間にコンストラクタが呼び出され、init()が実行されます。init()には、addListener()を使い、ステージに対してEventクラスのMOUSE_MOVEイベントをリスナー登録しています。このイベントはユーザーイベントで、マウスが動いた時リスナー関数を呼び出します。
private function init():void{
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, mosueMoveHandler)
}
リスナー関数mosueMoveHandler()は、円を生成してコントロールするCreateCircleを生成して、メインタイムラインの表示リストに追加しています。
private function mosueMoveHandler(e:MouseEvent):void {
circle = new CreateCircle();
this.addChild(circle)}
次のページでは、ADDED_TO_STAGEイベントについて紹介します。