2012-04-07 101 views
1

我是AS3的新手。自定义类中的AS3事件侦听器

对于图形表示,我使用fla文件作为资源。我在Flash Builder 4.6中编写代码。

我尝试创建包含click事件的自己的类面板。 但是当我测试移动时事件不起作用!

当我将事件处理函数(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 2012-04-07 09:41:30

+0

不,游标是一样的(不是一只手) – 2012-04-07 10:00:47

+0

PanelButton的基类是什么?它实际上可以接收鼠标事件吗? – 2012-04-07 10:47:21

回答

0

enter image description here

确保在符号属性,你有你的设置配置如上图所示。在“类”部分中,您必须明确定义该类(在外部.as文件中定义)以将该符号链接到文件中的类。还要确保在您的项目目录(您的FLA所在的位置)中有一个名为“ui”的文件夹,并在其中定义了面板类的“Panel.as”文件。