我試圖擴展一個面板類,這樣我只能在單擊標題區域時觸發點擊事件。標題區域是一個名爲titleBar的Panel的受保護的組件。所以我想公開這個組件。公開一個受保護的屬性
看來我幾乎在那裏,但我得到一個「TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。」當它試圖添加一個事件監聽器到標題欄。
這裏是我的擴展面板
package custClass{
import mx.containers.Panel;
import mx.core.UIComponent;
public class ExtPanel extends Panel{
[Bindable] public var TitleBar:UIComponent;
public function DragPanel(){
super();
TitleBar = super.titleBar;
}
}
}
下面是我打電話給我的功能是創建一個新的面板AS的修剪版本:
var newPanel:ExtPanel = new ExtPanel();
newPanel.TitleBar.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
錯誤指向最後一行。我錯過了什麼?
感謝
編輯: 每答案下面我現在想的:
package custClass{
import mx.containers.Panel;
import mx.core.UIComponent;
public class extPanel extends Panel{
public function extPanel(){
super();
}
public function getTitleBar():UIComponent{
return this.titleBar;
}
}
}
然後這在AS:
newPanel.getTitleBar().addEventListener(MouseEvent.ROLL_OVER,over);
仍然得到同樣的錯誤。這對我來說是全新的,我的下一步是什麼?
謝謝,我覺得自己有時不知道事情的順序,這是我第一次真正嘗試着擴展一個類,而不僅僅是添加一些簡單的尺寸或樣式。 – invertedSpear 2009-12-30 00:03:08