En route pour la création du 4ème composant de notre Bibliothèque AS3 de Composants Graphiques !
J'ai nommée la fameuse ComboBox ou Liste Déroulante.
Comme d'habitude, dans ce chapitre, vous verrez comment établir le cahier des charges de la ComboBox. Et vous aurez bien évidemment accès aux sources commentées afin de mettre en pratique tout ce que vous aurez appris.
II. CDCF d'un composant ComboBox
Un composant de type ComboBox est en en fait une liste déroulante. Il y a en sur la majorité des sites internet. Elle se compose d'un bouton et d'un composant de type List. La valeur du bouton change suivant l'élément qui est sélectionné dans la List.
Une fois n'est pas coutume, nous allons illustrer notre description :
Ici nous pouvons reconnaître deux composants que nous avons déjà développés:
le Button ( la partie qui contient le texte "Times New Roman" )
la List ( le rectangle qui contient une liste de polices de caractères et qui peut être scrollée ).
La rédaction du CDCF (Cahier Des Charges Fonctionnel) est donc quasiment terminé.
Nous allons juste ajouter une petite contrainte :
Tous les éléments du composant List ont tous la même hauteur et le même style. Nous conservons ce comportement graphique cohérent.
III. CDCT d'un composant ComboBox
Traduisons en terme technique le CDCF (les spécifications fonctionnelles) du composant ComboBox.
Eh oui, c'est parti pour la rédaction du CDCT (Cahier Des Charges Techniques).
Un composant de type ComboBox est une liste déroulante comme vous pouvez en voir sur n'importe quel site internet. Elle se compose d'un bouton et d'un composant de type List.
La Classe ComboBoxButton
Le bouton représente le titre de la ComboBox. Pour cela nous développons une classe ComboBoxButton.
Aucun problème pour le bouton, nous avons déjà développé auparavant les composants graphiques nécessaires.
La valeur du bouton change suivant l'élément qui est sélectionné dans la List.
Nous écouterons donc l'évènement MOUSE_CLICK de type flash.events.MouseEvent sur le composant List.
La classe ComboBoxButton reprend les fonctionnalités de la classe Button en ajoutant les suivantes :
un getter / setter permettant de récupérer la valeur (un objet) d'un ComboBoxButton.
la gestion du skin graphique propre à ComboBoxButton.
La Classe ComboBoxElement
Tous les éléments du composant List possèdent une hauteur et un style identique, nous devons conserver ce comportement graphique cohérent.
Pour cela, nous créons une classe ComboBoxElement qui reprend les fonctionnalités de la classe Button.
Par extension, elle héritera également des fonctionnalités de la classe de base UIComponent.
Ainsi, tous les éléments qui seront ajoutés dans notre List seront du même type et possèderont tous une apparence identique.
Les éléments de la List de la ComboBox sont bien évidemment personnalisables graphiquement avec 3 états différents :
Normal : L'élément est « au repos », il n'est ni survolé, ni cliqué.
Survol : L'utilisateur passe et laisse sa souris au dessus de l'élément sans toutefois cliquer dessus.
Cliqué ou clic maintenu : L'utilisateur réalise un clic gauche et laisse le bouton de sa souris maintenu sur l'élément.
IV. Conclusion
Voilà, c'est terminé, toutes mes félicitations pour avoir suivi et appliqué l'ensemble des Tutoriels AS3.
Vous venez de créer une Bibliothèque AS3 de Composants Graphiques ou plus communément appelé un Framework de Composants AS3.
La ComboBox est le dernier composant graphique que nous avions à développer et qui nécessitait tant d'efforts.
Les prochains tutoriels seront des bonus.
C'est un peu ma façon de vous remercier et de vous encourager à développer vos propres composants graphiques. Soit en apportant des améliorations au Framework AS3 Facile ou en développant votre propre Framework de Composants.
J'ai pris beaucoup de plaisir à rédiger ces articles et j'espère vous avoir communiqué l'envie d'aller plus loin. Les voies à explorer sont nombreuses et la programmation graphique passionnante.
Évolutions des fonctionnalités
Pour améliorer notre Composant AS3 ComboBox, voici quelques exemples de fonctionnalités supplémentaires à implémenter.
Allez, maintenant, c'est à vous de coder !
Méthode resizeListOnly
Je vous propose d'ajouter la méthode resizeListOnly() à notre composant ComboBox.
resizeListOnly ajoute la fonctionnalité suivante :
permet de déterminer les dimensions de la List indépendamment du Titre ( ComboBoxButton ). En quelque sorte, la liste déroulante qui apparait sous la ComboBox peut être plus large que son titre. Pensez également à redimensionner les éléments de la List !
Création d'un menu en Flash
Avec le composant ComboBox et la méthode resizeListOnly, vous pouvez créer un menu de navigation tout simple. Une des solutions (il y a en plusieurs) consiste à utiliser plusieurs ComboBox, positionnées les unes à côté des autres et interagissant entre elles.
Si vous concevez souvent des menus pour vos applications Flash, je vous conseille de créer un composant Menu.
Proposez vos exemples de code et posez vos questions sur le Forum AS3 Developpez.
Merci beaucoup à l'Equipe Developpez.com de contribuer à la diffusion du Framework ActionScript-Facile.
Rendez-vous sur
ActionScript-Facile
pour consulter des tutoriels, télécharger des codes sources supplémentaires et recevoir
un guide sur l'utilisation de l'Editeur ActionScript FDT.