2011-02-10 61 views
2

當我創建類似如下:Flex:基於標記的事件處理程序的編程等價物?

<mx:DataGrid id"myDataGrid" 
      itemEditBegin="myDataGrid_itemEditBeginHandler(event)" /> 

什麼時候的事件偵聽「itemEditBegin」獲取添加和刪除?難道這基本上是一樣的:

<mx:DataGrid id="myDataGrid" 
      creationComplete="myDataGrid_creationCompleteHandler(event)" /> 

protected function myDataGrid_creationCompleteHandler(event:FlexEvent):void 
{ 
    this.myDataGrid.addEventListener(DataGridEvent.ITEM_EDIT_BEGIN, 
            this.myDataGrid_itemEditBeginHandler); 
} 

protected function myDataGrid_whatEventDispatcherGoesHere?Handler(event:FlexEvent):void 
{ 
    this.myDataGrid.removeEventListener(DataGridEvent.ITEM_EDIT_BEGIN, 
             this.myDataGrid_itemEditBeginHandler); 
} 

基本上,我想知道我要補充「myDataGrid.addEventListener」如果我想以編程方式做到這一點?它應該在對象本身的creationComplete監聽器函數中,還是在其駐留的任何父對象的creationComplete監聽器函數中?

回答

3

如果您要添加的事件監聽器編程:對象的

  • creationComplete處理函數是它
  • 如果你編程方式創建數據網格,只需添加它實例化之後的任何時間的好去處對象
  • 把它放在父類的creationComplete處理程序中會給代碼添加不必要的複雜性,我不會推薦它。但是,它會起作用。
Flex中創建對象

很好的參考:http://www.mikaflex.com/?p=270

+0

謝謝!去除它呢?有沒有什麼東西可以在對象被破壞時移除偵聽器,還是最好手動刪除它? – Ocelot20 2011-02-10 15:42:54