我创建了一个自定义事件,它是从自定义组件触发的。应该在主应用程序中捕获它以更改视图堆栈的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;
}
答案 0 :(得分:4)
为了在调度事件时调用处理程序,您需要向自定义组件添加事件侦听器。
myCustomComponent.addEventListener ( ChangeSelectedIndex.index_passed, changeSelectedIndexHandler);
确保此行与处理函数和myCustomComponent在同一范围内,否则会出错。