ActionScript 3 – Programmation séquentielle et orientée objet
86
Animer un filtre
Pour terminer ce développement sur les filtres, nous allons découvrir qu’il est possible
d’animer un filtre pour obtenir un effet de mouvement de lumière.
Fichier de référence : Chapitre4/filtres4.fla
import flash.filters.BevelFilter;
var listeDesFiltres:Array = new Array();
var angle:Number;
var distance:Number;
var lueur:BevelFilter = new BevelFilter();
lueur.quality=3;
lueur.strength = 0.8;
listeDesFiltres.push(lueur);
laTache.filters = listeDesFiltres;
stage.addEventListener(MouseEvent.MOUSE_MOVE,reglerLumiere);
function reglerLumiere(evt:MouseEvent) {
angle = (Math.atan2(129-mouseY, 258-mouseX)/Math.PI)*180;
lueur.angle = angle;
distance = Math.abs(129-mouseY)+Math.abs(258-mouseX);
lueur.blurX = lueur.blurY = distance/10;
listeDesFiltres = [];
listeDesFiltres.push(lueur);
laTache.filters = listeDesFiltres;
}
Les 12 premières lignes du script ci-dessus sont identiques à celles des scripts que nous
avons abordés précédemment ; nous ne reviendrons donc pas sur ces explications. En
revanche, essayons de comprendre comment la lueur illumine l’occurrence placée au centre
de la scène (figure 4-12).
Figure 4-12
Le curseur de la souris de notre animation dégage une lueur, à tel point qu’en le déplaçant, le bord de l’occurrence
le plus proche du curseur est éclairé par celui-ci.
86
Animer un filtre
Pour terminer ce développement sur les filtres, nous allons découvrir qu’il est possible
d’animer un filtre pour obtenir un effet de mouvement de lumière.
Fichier de référence : Chapitre4/filtres4.fla
import flash.filters.BevelFilter;
var listeDesFiltres:Array = new Array();
var angle:Number;
var distance:Number;
var lueur:BevelFilter = new BevelFilter();
lueur.quality=3;
lueur.strength = 0.8;
listeDesFiltres.push(lueur);
laTache.filters = listeDesFiltres;
stage.addEventListener(MouseEvent.MOUSE_MOVE,reglerLumiere);
function reglerLumiere(evt:MouseEvent) {
angle = (Math.atan2(129-mouseY, 258-mouseX)/Math.PI)*180;
lueur.angle = angle;
distance = Math.abs(129-mouseY)+Math.abs(258-mouseX);
lueur.blurX = lueur.blurY = distance/10;
listeDesFiltres = [];
listeDesFiltres.push(lueur);
laTache.filters = listeDesFiltres;
}
Les 12 premières lignes du script ci-dessus sont identiques à celles des scripts que nous
avons abordés précédemment ; nous ne reviendrons donc pas sur ces explications. En
revanche, essayons de comprendre comment la lueur illumine l’occurrence placée au centre
de la scène (figure 4-12).
Figure 4-12
Le curseur de la souris de notre animation dégage une lueur, à tel point qu’en le déplaçant, le bord de l’occurrence
le plus proche du curseur est éclairé par celui-ci.
