Удалить слушателя - PullRequest
       6

Удалить слушателя

0 голосов
/ 25 июля 2011

Я читал, как это сделать, но у меня не хватает реализации.Я хочу, чтобы событие updateComplete запускалось один раз, а затем удаляло слушателя.

Вот компонент:

<mx:ComboBox 
            id="templatesCombo" 
            dataProvider="{lendersModel.fileTemplateComposites}"
            prompt="Select Template" 
            width="200" 
            labelFunction="getTemplateName"
            change="onViewTempComboChange(event)"
            updateComplete="checkTemplatesLength(event);"/>

Вот обработчик:

private function checkTemplatesLength( event:FlexEvent ):void{
            if( lendersModel.fileTemplateComposites.length == 1 ){
                this.templatesCombo.selectedIndex = 1;
                this.currentFileTemplate = templatesCombo.selectedItem as FileTemplateCompositeDTO;
                this.templateActions_bb.updateButtonVisibility( 2, true  ); // disable delete button
            }
            var cb:ComboBox = ComboBox( event.currentTarget )
            cb.removeEventListener( FlexEvent.UPDATE_COMPLETE, checkTemplatesLength );
        }

Чего мне не хватает?Я думал, что это как сделать это из других постов, которые я прочитал здесь.

Любые советы будут с благодарностью.

Спасибо!

1 Ответ

1 голос
/ 25 июля 2011

может быть, он вообще не подключен как слушатель событий ?! но я уверен, что это работает так:

private var cb:ComboBox;

private function init():void {
    cb = // get the right combobox
    cb.addEventListener(FlexEvent.UPDATE_COMPLETE, checkTemplatesLength);
}

private function checkTemplatesLength( event:FlexEvent ):void{
    if (lendersModel.fileTemplateComposites.length == 1 ){
        this.templatesCombo.selectedIndex = 1;
        this.currentFileTemplate = templatesCombo.selectedItem as FileTemplateCompositeDTO;
        this.templateActions_bb.updateButtonVisibility( 2, true  ); // disable delete button
    }
    cb.removeEventListener( FlexEvent.UPDATE_COMPLETE, checkTemplatesLength );
}
...