我试图扩展一个面板类,这样我只能在单击标题区域时触发点击事件。标题区域是一个名为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