2011-12-09 36 views
0

我創建了一個自定義事件,它是從自定義組件中觸發的。在主應用程序中應該修改Viewstack的選定索引。 但這不起作用,我不明白爲什麼。自定義事件不起作用

這是我的自定義事件:

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

你確定'checkUsernameExistsDbSucces'被調用?你有沒有試圖追蹤電話? –

+0

你在哪裏添加事件監聽器?如果事件沒有被捕獲,你要麼不派遣一個(該函數沒有被調用),你要聽錯誤的事件調度器,或者你的事件應該冒泡。 – weltraumpirat

+0

@JohnGiotta:是的,這成功地被稱爲。 – Veltar

回答

4

在爲了在調度事件時調用處理程序,需要將事件偵聽器添加到自定義組件中新界東北堆填區。

myCustomComponent.addEventListener (ChangeSelectedIndex.index_passed, changeSelectedIndexHandler); 

請確保此行與處理程序函數和myCustomComponent在同一範圍內,否則會出現錯誤。

+0

謝謝,這樣做! – Veltar