ActionScript-3 вызывает addEventListener более одного раза - PullRequest
2 голосов
/ 02 июня 2010

У меня небольшая проблема, я не совсем понимаю, могу ли я использовать addEventListener более одного раза для одного и того же объекта (и одной и той же функции обратного вызова), если в этом случае может возникнуть проблема переполнения или простой flex настолько умен, чтобы не добавлять снова в тот же стек ту же функцию

для примеров:

var t:CServiceObj = _rModel.userGetBoardJoined(); 
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);

Ответы [ 2 ]

1 голос
/ 02 июня 2010

Я попытался провести быстрый тест на Button, и не имеет значения, если addEventListener добавляется несколько раз к одной и той же функции - он отправляется один раз.

Однако вы можете настроить что-то вроде этого

t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk);
t.addEventListener(EDataService.DATA_AVAILABLE,onDataOk2);

где onDataOk2 вызывает onDataOk с параметром события.

Интересная заметка В другом тесте я добавил обработчик кликов в теге mxml и обработчик кликов в AS, оба указывали на одну и ту же функцию. Когда кнопка была нажата, оба обработчика отправили, так что Flex сделал что-то закулисное, чтобы приспособить эту функциональность.

1 голос
/ 02 июня 2010

Как вы говорите, Flex "умный", и даже если вы подписываетесь на событие более одного раза в одном и том же экземпляре, обработчик будет вызываться только один раз (независимо от того, сколько вы добавили addEventListener).

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