Encore un blog de GeeK
Article tagué eventlistener
Eviter d’utiliser stage.addEventListener()
3/08/11
En Flex/ActionScript, il n’est pas rare de vouloir écouter un évènement au niveau le plus haut et de voir du code tel que:
if (stage) {
stage.addEventListener(MonEvent.MON_TYPE, _monHandler);
} else {
this.addEventListener(Event.ADDED_TO_STAGE, function(e:Event):void{
stage.addEventListener(MonEvent.MON_TYPE, _monHandler);
});
}
En effet, lors de l’inialisation des composants Flex, l’attribut stage n’est pas encore disponible.
Pourtant, il est plus simple et plus propre d’utiliser SystemManager:
systemManager.addEventListener(MonEvent.MON_TYPE, _monHandler);
Ce morceau de code ne plantera pas car systemManager est initilisé dès le lancement de l’application et est toujours présent dans les composants, contrairement à stage.
