2012-04-07 14 views
1

AS3を初めて使用しています。カスタムクラスのAS3イベントリスナー

私はグラフィカルな表現のために、flaファイルをリソースとして使用しています。私はFlash Builder 4.6でコードを作成しています。

clickイベントを含む独自のクラスPanelを作成しようとしています。 しかし、移動をテストするとイベントが機能しません!

イベントハンドラ(buttonClick)とイベントリスナをメインクラス(test)に移動してイベントをカードオブジェクトに適用すると、すべて正常に動作します。

私のコードで何が問題になっていますか?

アプリケーションの私のメインクラス:

package 
{ 
import flash.display.Sprite; 
import flash.events.*; 
import flash.ui.Keyboard; 

import ui.Panel; 

public class test extends Sprite 
{ 
    var card:Panel; 

    public function test() 
    { 
     card = new Panel(); 
     addChild(card); 
    } 

} 
} 

Panelクラス:

package ui 
{ 
import flash.display.MovieClip; 
import flash.events.*; 

public class Panel extends MovieClip 
{ 

    var back:PanelBack; 
    var button:PanelButton; 

    public function Panel() 
    { 
     super(); 
     back = new PanelBack(); 
     button = new PanelButton(); 
     addChild(back); 
     addChild(button); 

     button.addEventListener(MouseEvent.CLICK,buttonClick); 
    } 

    private function buttonClick(event:MouseEvent):void 
    { 
     trace("Hello"); 
    } 

} 
} 
+0

値を追加しようbutton.buttonMode = true、これはハンドカーソルを表示し、表示リストを管理するのに役立ちます。カーソルが変更された場合、あなたのオブジェクトにマウスがアクセス可能かどうかがわかります。 – turbosqel

+0

いいえ、カーソルは同じです(手ではありません) –

+0

PanelButtonの基本クラスは何ですか?実際にマウスイベントを受け取ることはできますか? –

答えて

0

enter image description here

は、シンボルのプロパティで、あなたは上記のように構成された設定を持っていることを確認してください。 "class"セクションでは、シンボルをファイル内のクラスにリンクするために、外部の.asファイルで定義されたクラスを明示的に定義する必要があります。また、あなたのプロジェクトディレクトリ(FLAがある場所)に、パネルクラスが定義されている "Panel.as"ファイルを持つ "ui"という名前のフォルダがあることを確認してください。

関連する問題