Enfin nous allons attaquer les choses sérieuses avec la conception du 1er composant de notre « Bibliothèque de Composants Graphiques ».
Dans ce chapitre, nous allons établir un cahier des charges pour un composant de type Button. 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 Bouton
Nous allons commencer par un bref descriptif des fonctionnalités de base d'un bouton avec le fameux Cahier Des Charges Fonctionnel.
Un bouton est un composant, qui peut être cliqué, survolé et qui dispose d'une apparence personnalisable pour chacun de ses états.
Comme vous pouvez le constater, il est facile de définir un composant bouton.
Le composant en lui-même reste simple à réaliser. Les prochains seront plus compliqués !
Commençons donc par lister tout les états que nous désirons obtenir sur notre bouton :
Normal : Le composant est « au repos », il n'est ni survolé, ni cliqué.
Survol : L'utilisateur passe et laisse sa souris au-dessus du bouton sans toutefois cliquer dessus.
Cliqué ou clic maintenu : L'utilisateur réalise un clic gauche et laisse le bouton de sa souris maintenu.
Nous possédons à présent un CDCF (Cahier Des Charges Fonctionnel) court et précis.
Le CDCF nous donne la marche à suivre pour la mise en place du CDCT (Cahier Des Charges Technique).
C'est-à-dire que nous reprenons le CDCF et nous nous chargeons de le "traduire" en langage technique, apportant ainsi plusieurs précisions utiles pour le développement.
Un bouton est un composant, qui peut être cliqué, survolé et qui dispose d'une apparence personnalisable pour chacun de ses états.
Voici la liste des états d'un bouton (déterminée dans le CDFC) : Normal, Survol, Cliqué.
Contraintes techniques
A partir des différents états d'un bouton, nous définissons les contraintes techniques suivantes :
Écouter les évènements de type :
MouseEvent.MOUSE_DOWN : état Cliqué.
MouseEvent.MOUSE_UP : état Survol.
MouseEvent.ROLL_OVER : état Survol.
MouseEvent.ROLL_OUT : état Normal.
Actualiser l'état graphique du bouton en fonction des évènements reçus.
Overrider la fonction (c'est-à-dire redéfinir son comportement) du composant de base UIComponent afin de mettre à jour chacun des états graphiques du Button.
Nous ajoutons également la contrainte technique suivante :
Ajout d'un champ texte qui se nommera "label" au sein du bouton et donner la possibilité d'y accéder depuis l'extérieur.
Pour cela, nous coderons deux getters et un setter :
Un getter labelField qui retournera directement le champ texte
Un getter label qui retournera le texte du champ texte.
Un setter label qui permettra de définir le texte du champ texte.
Notre champ texte sera de type UITextfield, cette classe est définie dans le package com.actionscriptfacile.ui.text. Nous reviendrons sur son implémentation lors du chapitre dédié au composant UITextfield.
IV. Conclusion
Nous disposons maintenant d'un bel objet de type Button. Celui-ci nous sera utile pour les développements de nos futurs composants.
Le composant Button peut être cliqué, survolé et un état graphique nous permet de visualiser une réelle interaction.
Évolutions des fonctionnalités
Dans les paragraphes suivants, vous trouverez des exemples de fonctionnalités à implémenter dans le « framework ActionScript Facile ».
N'hésitez pas à poster vos exemples sur le Forum AS3 Developpez.
A vous de jouer !
Lock Button
Vous pouvez essayer de créer une classe permettant de gérer un groupe de plusieurs boutons. En fonction du bouton cliqué, des actions différentes sont lancées. Le bouton cliqué ne peut pas être de nouveau activé. Un peu comme la gestion d'un menu de « Lock Button ».
Skin
De plus, vous pouvez essayer de mettre à jour en direct l'apparence de vos boutons.
Par exemple en cliquant sur 1 de vos "Lock Button", l'apparence du bouton est modifiée.