ドキュメントクラスの設定とイベント処理

2008年6月23日(月)
加茂 雄亮

今回のサンプルは?

 前回の「第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イベントについて紹介します。

株式会社ロクナナ
ActionScriptを伴うFlashコンテンツやXHTML+CSS+JavaScriptによるAjaxコンテンツなどのRIA開発に従事。Flash/ActionScript 3.0やXHTML+CSSに関する講義・執筆活動にも取り組んでいる。http://www.rokunana.com/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています