在子组件的显示列表中监听事件

时间:2011-06-27 15:13:38

标签: actionscript-3 events displaylist

我正在创建一个swf,它有一个父类和一个子类。父类有一个按钮,它调度一个自定义事件,我希望子类列出这个事件,但是当我调度该事件时,子类没有听到事件已被调度。

这是调度事件的代码:

private function onCTAClicked(e:MouseEvent):void
        {
            trace("onCTAClicked");
            dispatchEvent(new CTAClickEvent(CTAClickEvent.CTA_CLICK_EVENT,true));
        }

And the listener is registered like this:

public function registerEventListeners():void
        {
            this.addEventListener(CTAClickEvent.CTA_CLICK_EVENT, onCTAClickHandler,false);  
        }

registerEventListeners()函数位于子类中。

我知道事件可能会冒出显示列表但是怎样才能进入列表?

斯蒂芬

1 个答案:

答案 0 :(得分:0)

不,事件不会被挖掘。他们只是冒泡了。为了使显示对象的子节点听到父节点调度的事件,在子对象的类中,您需要将一个侦听器添加到父对象的引用中。

public function registerEventListeners() : void {
    parent.addEventListener(CTAClickEvent.CTA_CLICK_EVENT, onCTAClickHandler);
}

当父级可能为null时,请确保不要调用registerEventListeners。