Добрый день, нужна консультация.
Есть классик и его наследник. В наследнике оверрайдится функция обработчика.
Насколько корректно такое переопределение? Какие минусы?
Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var _customPanel:CustomPanel = new CustomPanel();
addChild(_customPanel);
_customPanel.dispatchEvent(new Event(Panel.TEST_EVENT));
}
}
}
Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Panel extends Sprite
{
public static const TEST_EVENT:String = "TestEvent";
public function Panel()
{
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
addEventListener(Panel.TEST_EVENT, onTestEvent, false, 0, true);
}
protected function onTestEvent(event:Event):void
{
trace("Panel::TEST ");
}
}
}
Код AS3:
package
{
import flash.events.Event;
public class CustomPanel extends Panel
{
public function CustomPanel()
{
super();
}
override protected function onTestEvent(event:Event):void
{
trace("CustomPanel:: TEST");
}
}
}