Flex: Как мне добавить этот обработчик событий? - PullRequest
1 голос
/ 22 мая 2011

Я часто использую шаблон единицы работы в своих проектах Flex. У меня будет класс, который может вызывать веб-службу, помещать данные в базу данных sqlite, обновлять модель данными и вызывать событие.

Я обычно называю их встроенными и передаю в некоторых синглтон-классах:

protected function CareerSynced():void
    {
        var process:ProcessWorkouts = new ProcessWorkouts(_dataModel, _trainerModel, _databaseCache, _database.Conn);
        process.addEventListener("AllWorkoutsProcessed", AllWorkoutsProcessed);
        process.UpdateAllUnprocessed();
    }

Тогда я получу ответ:

private function AllWorkoutsProcessed(event:DataReceivedEvent):void
    {
    //do something here 
    }

У меня вопрос: правильно ли я добавляю прослушиватель событий? Я думаю, что может быть причиной утечки памяти, но я не уверен. Я также думал об использовании слабой ссылки. Я не понимаю, когда их использовать. Это будет один из тех случаев?

Должно ли это быть так?

process.addEventListener("AllWorkoutsProcessed", AllWorkoutsProcessed,false, 0, true);

1 Ответ

2 голосов
/ 22 мая 2011

Я бы либо использовал слабую ссылку, либо просто удалил слушателя:

private function AllWorkoutsProcessed(event:DataReceivedEvent):void
{
     event.target.removeEventListener("AllWorksoutsProcessed",AllWorkoutsProcessed);
}

Я мог бы перечислить свои причины, но я просто укажу на это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...