2012-04-07 481 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」文件。

相關問題