Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 自定义事件不工作_Actionscript 3_Apache Flex_Actionscript - Fatal编程技术网

Actionscript 3 自定义事件不工作

Actionscript 3 自定义事件不工作,actionscript-3,apache-flex,actionscript,Actionscript 3,Apache Flex,Actionscript,我创建了一个自定义事件,它是从自定义组件触发的。更改viewstack的selectedindex应该在主应用程序中捕获。 但这不起作用,我也不明白为什么 这是我的自定义活动: package events { import flash.events.Event; public class ChangeSelectedIndex extends Event { public static var index_passed:String = "Index

我创建了一个自定义事件,它是从自定义组件触发的。更改viewstack的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;
}
这是我捕捉事件的功能:

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;
}

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

myCustomComponent.addEventListener ( ChangeSelectedIndex.index_passed, changeSelectedIndexHandler);

确保此行与处理程序函数和myCustomComponent在同一范围内,否则将出现错误。

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

myCustomComponent.addEventListener ( ChangeSelectedIndex.index_passed, changeSelectedIndexHandler);

确保此行与处理程序函数和myCustomComponent在同一范围内,否则将出现错误。

您确定调用了
checkUsernameExistsDbSucces
?您是否尝试跟踪该调用?在哪里添加事件侦听器?如果事件根本没有被捕获,您要么不调度一个(函数没有被调用),要么侦听错误的事件调度器,要么您的事件应该冒泡。@Johngitta:是的,调用成功。@weltraumpirat:我意识到我没有添加eventListener。我应该在哪里做得最好?只是一个旁注:您应该在自定义事件类名中包含单词
Event
。现在,您似乎是根据它的功能命名的,而不是根据它是什么命名的。您确定
checkusernameexistsbsucces
被调用了吗?您是否尝试跟踪该调用?在哪里添加事件侦听器?如果事件根本没有被捕获,您要么不调度一个(函数没有被调用),要么侦听错误的事件调度器,要么您的事件应该冒泡。@Johngitta:是的,调用成功。@weltraumpirat:我意识到我没有添加eventListener。我应该在哪里做得最好?只是一个旁注:您应该在自定义事件类名中包含单词
Event
。现在看来你是根据它的功能来命名的,而不是它是什么。