オブジェクトのクラス名を取得するgetQualifiedClassName()関数を使ったサンプル。
ステージに描かれた3つの四角形。
それぞれの四角形はBoxClassを継承した派生クラス(BoxRed, BoxGreen, BoxBlue)のインスタンスです。
BoxClassは自分自身がクリックされると、カスタムイベント(ClickedEvent)を発生します。
ドキュメントクラスでは、3つの四角形それぞれにカスタムイベント(ClickedEvent)に対してイベントリスナーを設定しています。呼び出される関数(onClickedEvent)は全部同じです。
onClickEvent関数の中で、currentTargetプロパティ(イベントの対象オブジェクト)からクラス名を取得して、どの四角形がクリックされたかを識別します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package { import flash.display.MovieClip; import flash.events.Event; import flash.utils.getQualifiedClassName; public class ClassNameTest extends MovieClip { public function ClassNameTest() { boxR.addEventListener("ClickedEvent", onClickedEvent); boxG.addEventListener("ClickedEvent", onClickedEvent); boxB.addEventListener("ClickedEvent", onClickedEvent); } function onClickedEvent(e:Event):void { txtClassName.text = "ClassName : " + getQualifiedClassName(e.currentTarget); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.Event; public class BoxClass extends MovieClip { public function BoxClass() { this.addEventListener(MouseEvent.CLICK, onClickThis); } function onClickThis(e:MouseEvent):void { dispatchEvent(new Event("ClickedEvent")); } } } |
1 2 3 4 5 6 7 8 9 10 11 |
package { import flash.display.MovieClip; public class BoxRed extends BoxClass { public function BoxRed() { } } } |
1 2 3 4 5 6 7 8 9 10 11 |
package { import flash.display.MovieClip; public class BoxGreen extends BoxClass { public function BoxGreen() { } } } |
1 2 3 4 5 6 7 8 9 10 11 |
package { import flash.display.MovieClip; public class BoxBlue extends BoxClass { public function BoxBlue() { } } } |
実行結果
クリックされた四角形のクラス名が表示されます。
This movie requires Flash Player 11
ソースファイルは、こちらからダウンロード
機能別に用意したカスタムイベント名を複数のクラスに渡り共通で使用して、イベントリスナー関数の中でクラスごとに処理を振り分けるようなことが実現できそう。
ゲームの中の幾つかのシーン(タイトル、ゲーム、その他)間を移動する際の方法として検討した内容。
コメントを残す
コメントを投稿するにはログインしてください。