0

我正在创建一个 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() 函数在子类中。

我知道事件可以在显示列表中冒泡,但如何才能从列表中删除?

斯蒂芬

4

1 回答 1

0

不,事件不会深入。他们只会冒泡。为了让显示对象的子对象能够听到父对象调度的事件,在子对象的类中,您需要将侦听器添加到父对象的引用。

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

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

于 2011-06-27T16:14:57.207 回答