Encore un blog de GeeK
Eviter d’utiliser stage.addEventListener()
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.
| Imprimer l'article | Cette entrée a été posté par noirbizarre le 03/08/2011 à 13:54, et placée dans Flex. Vous pouvez suivre les réponses à cette entrée via RSS 2.0. Vous pouvez laisser une réponse, ou bien un trackback depuis votre site. |
