
Ce tutoriel va vous apprendre à utiliser une des forces du framework Flex d'Adobe, les possibilités d'animations dans une Interface et surtout leur simplicité à être mise en place (ceci dit ça mérite un tuto). Nous allons voir ensemble 2 grandes notions dans Flex, celle de Transition et celle d'Etat (state).
Voici le code de notre application sur lequel nous allons nous baser pour la suite de ce tuto. Il est composé d'une barre avec deux boutons, et d'un conteneur de type "canvas" qui contiendra les différentes "rubriques".
Nous allons d'abord développer la notion d'Etat dans Flex: En fait, vous pouvez assimilez un état à une apparence de votre application à un instant donné. Un état de base est automatiquement crée en Flex, vous pouvez ensuite le décliner en sous état. Flex vous donne le choix d'un état par défault qui est activé dés le début de votre application.
Pour réaliser un Etat, 2 options s'offrent à vous: soit vous le faites à l'aide de l'interface de Flex Builder (votre document Mxml > onglet Design > Encart en haut à droite de Flex Builder
Sinon vous pouvez tout à fait les créer dans le code Mxml de votre application à l'aide de la balise <mx:states> et <mx:state> (la première étant l'élément parent de la 2ème). Voyons ce que ca peut donner:
La balise <mx:state> ne comporte ici qu'un seul attribut qui est son nom ('name'). Ce nom sert à identifier l'état, vous l'utiliserez lorsque vous souhaiterez appeler chaque Etat. Pour ajouter un élément à l'Etat, il suffit d'utiliser la balise <mx:AddChild> avec son attribut target qui correspond à l'élément dans lequel nous allons placer nos éléments d'interface. Notre application
Pour que votre application commence à un état précis, ajouter un attribut currentState à votre application:
Pour passer d'un état à l'autre, il vous suffit de changer la variable dont nous avons parlé plus haut: currentState. Ce qui donne ceci lorsque l'on traite les boutons du menu.
Les transitions dans Flex sont plutôt simple à mettre en place une fois qu'on maîtrise bien les différents états de notre application. Les transitions ne s'écrivent pas en ActionScript comme on aurait pu l'imaginer. ils s'écrivent aussi en Mxml. Toutes les informations sur les effets de transitions se stockent dans la balise <mx:Transitions> puis dans la balise <mx:Transition> pour chaque effet unique. Voyons ce que ca peut donner sur notre petite interface:
Je vous conseille de placer ce code au début de votre application pour bien vous y retrouver quand vous serez amené à bosser sur des applications un peu plus complexes. Comme vous pouvez le voir, l'élément <mx:Transition> comporte 2 attributs primordiaux: fromState et toState qui indique quand doit être éxécutée l'animation, pour quel changement d'Etat (de quel état à quel état). On aurait pu mettre par exemple fromState="rubrique1" toState="rubrique2", mais l'effet de transition ne se saurait pas éxécuté lorsqu'on aurait souhaité aller à la rubrique 1 en étant sur la rubrique 2.
Pour avoir les mêmes effets partout et pour tout changement d'Etat on a donc remplacé les noms d'état par des étoiles: ce qui signifie "tous les états". Voyons maintenant ce qui se cache à l'intèrieur de ses transitions.
Les différents effets se placent donc dans cette balise <mx:Transition>. Il existe une liste prédéfinie dans Flex 3 de 13 effets différents. Vous pouvez cependant créez vos propres effets de transitions en ActionScript 3 mais ce n'est pas l'objet du tuto.
Voici la liste des effets:
Voici donc comment utiliser une transition:
voilà ce n'est pas très compliqué, il suffit juste de préciser 2 attributs:
Pas de soucis, Flex a pensé à vous! Pour combiner plusieurs effets de transitions il suffit d'inclure la balise <mx:sequence> qui éxécute vos effets à la suite, ou bien la balise <mx:parallel> qui éxécute vos animations en même temps. Pour notre démo voici ce que ca donne:
Voilà ce premier tuto sur Flex est terminé, j'espère pour vous qu'il vous sera utile!