Есть класс который наследуется от спрайта, является чилдом stage и подписывается на событие у stage

Код:
public class Panel extends Sprite
{
public function Panel()
{
this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function onAdded(e:Event):void
{
stage.addEventListener(PanelEvent.PANEL_EVENT, addText);
...
}
...
}
в некотором мувике который глубоко по иерархии по нажатию кнопки создается экземпляр класса который стреляет событием

Код:
hit.addEventListener(MouseEvent.CLICK, playClick);
private function playClick(e:MouseEvent):void
{
new PanelEvent("hello world!");
}
собсна сам PanelEvent

Код:
...
public class PanelEvent extends EventDispatcher
{
public static const PANEL_EVENT:String = "PanelEvent";
public var str:String;
public function PanelEvent(text:String)
{
str = text;
dispatchEvent(new Event(PanelEvent.PANEL_EVENT, true));
}
}
если в мувике с экземпляром класса события написать так

Код:
private function playClick(e:MouseEvent):void
{
//new PanelEvent("hello world!");
dispatchEvent(new Event(PanelEvent.PANEL_EVENT, true));
}
то всё работает. почему так происходит?