Как удалить EventListener в ItemRenderer? - PullRequest
2 голосов
/ 04 марта 2012

Я создаю пользовательский скрипт для itemRenderer, и у меня есть:

override protected function createChildren():void {
        super.createChildren();
        addEventListener(MouseEvent.CLICK, clicked,false,0,true);
}

Куда мне положить removeEventListener, когда я закончу с itemRenderer?

Ответы [ 2 ]

1 голос
/ 04 марта 2012
override protected function createChildren():void {
        super.createChildren();
        addEventListener(Event.ADDED_TO_STAGE, activateDeactivate, false, 0, true); 
        //will be removed by GC due to weak reference
}

private function activateDeactivate( evt:Event ):void
{
    switch( evt.type )
    {
        case Event.ADDED_TO_STAGE:
            addEventListeners();
            break;
        case Event.REMOVED_FROM_STAGE:
            removeEventListeners();
            break;
    }
}

protected function addEventListeners( ):void
{
    addEventListener(Event.REMOVED_FROM_STAGE, activateDeactivate, false, 0, true);

    //add all other event listeners here or override this method in your class
}

protected function removeEventListeners( ):void
{
    removeEventListener(Event.REMOVED_FROM_STAGE, activateDeactivate);

    //Remove all other event listeners here or override this method in your class
}
0 голосов
/ 04 марта 2012

Вы можете удалить прослушиватели событий при отправке Event.REMOVED. Но сначала вы должны добавить прослушиватель событий, чтобы получить его.

...