Flex 3 - Applications Internet riches
© Groupe Eyrolles, 2008
138
TitleWindow. Nous commençons à percevoir ici tout l’intérêt de la programmation orientée objet et du concept ultrapuissant d’héritage de classe.
Compilez et observez le résultat. Rien ne se passe en cliquant sur l’entête des panneaux. Pas de panique, c’est normal, nous avons simplement
oublié d’initialiser notre écouteur sur l’événement Mouse Down.
Pour initialiser notre composant avec un écouteur, nous pouvons observer,
dans l’aide de Flex, les caractéristiques de la classe ancêtre dont hérite
notre classe. La classe TitleWindow nous informe que la structure interne
du composant est initialisée via la méthode publique initialize(), ellemême héritée de la classe UIComponent dont est issue TitleWindow.
En allant plus loin dans notre recherche, l’aide dynamique de Flex nous
indique que la phase d’initialisation d’un UIComponent est la quatrième
étape du processus de création de l’instance d’un composant visuel. Mais
le point le plus intéressant est sans doute que cette méthode n’intègre
pas d’écouteur sur un événement Mouse Down. Il va falloir l’intégrer en
utilisant le concept de surcharge de classe.
Le concept de surcharge de classe
Le processus de surcharge d’une classe (overriding) est rendu obligatoire
quand nous avons besoin de modifier certaines fonctionnalités héritées
d’une classe. Dans notre exemple concret, la méthode initialize() n’est
visiblement pas complète. Nous devons alors surcharger notre classe
héritée pour intégrer un écouteur sur un événement Mouse Down. Pour
mettre en œuvre le concept de surcharge, nous devons donc ajouter la
méthode existante initialize() en lui appliquant le mot-clé réservé
override indiquant à Flex que cette méthode est dite « surchargée ».
Il faudra donc intégrer au début de votre classe DragTitleWindow la
méthode surchargée suivante :
Surcharge de la méthode Initialize()
Remarquez l’utilisation du mot-clé réservé super ᕡ. Lorsqu’une classe
enfant étend une classe parent, comme c’est le cas dans notre exemple,
nous devons obligatoirement passer au constructeur parent les paramètres nécessaires à l’initialisation de la classe parent. L’utilisation du motoverride public function initialize(): void
{
// exécution de la méthode surchargée :
super.initialize(); ᕡ
addEventListener(MouseEvent.MOUSE_DOWN,
gestionMouseDown, false); ᕢ
}
ATTENTION
Signature d’une classe surchargée
La méthode surchargée doit avoir le même nom
et la même signature que la méthode qui surcharge. Dans le cas contraire, la surcharge sera
considérée comme « incompatible ».
Précédent

- 152/240

Suivant