ActionScript 3 – Programmation séquentielle et orientée objet
84
Effet de bouton qui s’enfonce
L’effet d’enfoncement lors d’un clic sur l’occurrence d’un clip est une animation des plus
classiques. Nous allons voir comment la programmer.
Fichier de référence : Chapitre4/filtres3.fla
import flash.filters.DropShadowFilter;
var listeDesFiltres:Array = new Array();
var ombreLegere:DropShadowFilter = new DropShadowFilter();
ombreLegere.distance = 6;
ombreLegere.alpha = 0.7;
ombreLegere.blurX = ombreLegere.blurY = 8;
ombreLegere.angle = 45;
listeDesFiltres.push(ombreLegere);
leLogo.filters = listeDesFiltres;
leLogo.addEventListener(MouseEvent.MOUSE_DOWN,enfoncerBouton);
leLogo.addEventListener(MouseEvent.MOUSE_UP,relacherBouton);
function enfoncerBouton(evt:MouseEvent) {
leLogo.filters=null;
leLogo.x+=6;
leLogo.y+=6;
}
function relacherBouton(evt:MouseEvent) {
leLogo.filters = listeDesFiltres;
leLogo.x-=6;
leLogo.y-=6;
}
Le début du script est commun à ceux que nous venons de présenter. Nous avons simplement
ajouté deux écouteurs d’événements qui surveillent l’instant où le bouton de la souris va
être enfoncé et celui où il va être relâché.
La fonction enfoncerBouton() va annuler le filtre appliqué à l’occurrence leLogo et décaler
cette dernière de 6 pixels vers la droite et le bas de la scène. Symétriquement, la fonction
relacherBouton() replace l’occurrence à sa position d’origine et réapplique le filtre.
Ce script est relativement simple mais plutôt long. Il serait utile de l’optimiser en n’ayant
qu’une seule fonction contenant un test conditionnel, comme nous l’avons fait avec le
fichier encre2.fla.
Script dans un fichier AS
Fichiers de référence : Chapitre4/filtres3as.fla et mainFiltre.as
Voyons à présent comment nous pourrions transcrire ce script dans un fichier externe
(mainFiltre.as).
Précédent

- 112/426

Suivant