自定义事件不起作用

时间:2011-12-09 14:20:29

标签: actionscript-3 flex actionscript

我创建了一个自定义事件,它是从自定义组件触发的。应该在主应用程序中捕获它以更改视图堆栈的selectedindex。 但这不起作用,我无法弄清楚原因。

这是我的自定义事件:

package events
{
    import flash.events.Event;

    public class ChangeSelectedIndex extends Event
    {
        public static var index_passed:String = "Index passed";
        private var index:int;

        public function ChangeSelectedIndex(i:int, type:String, bubbles:Boolean=false, cancelable:Boolean=false)
        {
            super(type,bubbles, cancelable);
            index = i;
        }

        public function get getIndex():int
        {
            return index;
        }
    }
}

这是我解雇事件的方式:

protected function checkUsernameExistsDbSucces(event:ResultEvent):void
{
     dispatchEvent( new ChangeSelectedIndex(1,ChangeSelectedIndex.index_passed,false,false));
}

这是我捕捉事件的功能:

private function changeSelectedIndexHandler(event:ChangeSelectedIndex):void
{
     mainViewStack.selectedIndex = event.getIndex;
}

1 个答案:

答案 0 :(得分:4)

为了在调度事件时调用处理程序,您需要向自定义组件添加事件侦听器。

myCustomComponent.addEventListener ( ChangeSelectedIndex.index_passed, changeSelectedIndexHandler);

确保此行与处理函数和myCustomComponent在同一范围内,否则会出错。