Я не на 100% уверен в том, что вы спрашиваете, но я бы переопределил действия, связанные с кликами, как это ..
Базовый класс:
public class MyButton extends UIComponent
{
/**
* Constructor
*/
public function MyButton()
{
// listeners
addEventListener(MouseEvent.CLICK, _click);
// ...other listeners
}
/**
* Called on dispatch of MouseEvent.CLICK
*/
private function _click(e:MouseEvent):void
{
doClick();
}
/**
* Override this method and fill with actions to
* do when this is clicked
*/
protected function doClick():void
{
trace("base class was clicked");
}
}
И расширяющий класс:
public class MyOtherButton extends MyButton
{
/**
* Override doClick
*/
override protected function doClick():void
{
super.doClick();
trace("extending class was clicked");
}
}
После тщательной проверки вашего кода:
Вы добавили двух разных слушателей к одной функции для одной, разве они не должны иметь отдельные функции, поскольку они вызываются контрастными событиями?
this.addEventListener(MouseEvent.MOUSE_DOWN, handleMouse);
this.addEventListener(MouseEvent.MOUSE_UP, handleMouse);
Кроме того, похоже, что вы ожидаете, что handleMouse будет запущен событием click, судя по приведенному ниже коду, а это не так.
override protected handleMouse(event:MouseEvent) : void
{
// subclass specific handling
}
Либо так, либо вы также забыли переопределить handleClick
- это метод, который вы запускаете при событии щелчка. Возможно, вам нужно добавить этот код:
override protected handleClick(event:MouseEvent) : void
{
// subclass specific handling for a click
}