auteur : Grégory Dumas
Pour cela, il suffit de créer un clip vide, de dessiner le bouton, puis de lui affecter un comportement de boutons grêce aux événements :
onPress : Evénement sur le clic
onRelease : Evénement sur le relâcher du bouton
onReleaseOutside : Evénement sur le relâcher du bouton en dehors du bouton
onRollOver : Evénement sur le survol du bouton par la souris
onRollOut : Evénement sur la sortie de la souris
var mc:MovieClip = this.createEmptyMovieClip("mBouton", this.getNextHighestDepth());
mc.lineStyle(1, 0xffffff, 100);
mc.beginFill(0xffcc00, 50);
mc.moveTo(10,10)
mc.lineTo(10,110);
mc.lineTo(110,110)
mc.lineTo(110,10);
mc.lineTo(10,10);
mc.endFill();
mc.onPress = function() { trace("onPress"); }
mc.onRelease = function() { trace("onRelease"); }
mc.onReleaseOutside = function() { trace("onReleaseOutside"); }
mc.onRollOver = function() { trace("onRollOver"); }
mc.onRollOut = function() { trace("onRollOut"); }
Remarque : Nous aurions pu charger un clip plutôt que d'en créer un. Les comportements de type bouton auraient été les mêmes.
auteur : Grégory Dumas
Pour cela, nous avons à notre disposition la classe ColorTransform. Cette classe permet de modifier la couleur d'un clip en fonction de ses couleurs d'origine.
Lorsqu'un objet ColorTransform est appliqué à un clip, une nouvelle valeur est calculée pour chaque canal de couleur de la manière suivante :
Nouvelle valeur de rouge = (ancienne valeur de rouge * redMultiplier)) + redOffset
Nouvelle valeur de vert = (ancienne valeur de vert * greenMultiplier)) + greenOffset
Nouvelle valeur de bleu = (ancienne valeur de bleu * blueMultiplier)) + blueOffset
Nouvelle valeur alpha = (ancienne valeur alpha * alphaMultiplier)) + alphaOffset
import flash.geom.ColorTransform;
import flash.geom.Transform;
var colorTrans:ColorTransform = new ColorTransform(1, 0.5, 0.25, 1, 15, -10, 40, 0);
var trans:Transform = new Transform(monClip);
trans.colorTransform = colorTrans;
Si vous souhaitez attribuer à votre clip une couleur indépendante de sa couleur d'origine, il suffit d'appliquer des coefficients "Multiplier" nuls.
import flash.geom.ColorTransform;
import flash.geom.Transform;
var colorTrans:ColorTransform = new ColorTransform(0, 0, 0, 0, 0xcc, 0x99, 0xff, 255);
var trans:Transform = new Transform(monClip);
trans.colorTransform = colorTrans;
Bien que plus simple d'utilisation (et toujours fonctionnelle), la classe Color étant désormais dépréciée, nous ne vous la conseillons pas.
auteur : Grégory Dumas
Pour appliquer un ou plusieurs filtres dynamiquement, il faut tout d'abord importer les package correspondant aux filtres souhaités :
import flash.filters.BevelFilter;
import flash.filters.BlurFilter;
import flash.filters.DropShadowFilter;
import flash.filters.GlowFilter;
import flash.filters.GradientBevelFilter;
import flash.filters.GradientGlowFilter;
import flash.filters.*;
On crée notre/nos filtre(s) et un tableau afin de les rassembler.
Par exemple, un effet biseau et un effet d'ombre portée. Regardez la documentation (F1) pour connaître les paramètres à passer en arguments.
var bevelFilter:BevelFilter = new BevelFilter(5, 90, 0xffff00, 1, 0x0000ff, 1, 10, 10, 1, 3, "inner", false);
var glowFilter:GlowFilter = new GlowFilter(0x000000, 1, 15, 15, 1, 3, false, false);
var aFilters:Array = new Array();
aFilters.push(bevelFilter);
aFilters.push(glowFilter);
Enfin on associe le tableau créé à notre clip :
mMonClip.filters = aFilters;
Résumé du code de notre exemple :
import flash.filters.BevelFilter;
import flash.filters.GlowFilter;
var bevelFilter:BevelFilter = new BevelFilter(5, 90, 0xffff00, 1, 0x0000ff, 1, 10, 10, 1, 3, "inner", false);
var glowFilter:GlowFilter = new GlowFilter(0x000000, 1, 15, 15, 1, 3, false, false);
var aFilters:Array = new Array();
aFilters.push(bevelFilter);
aFilters.push(glowFilter);
mMonClip.filters = aFilters;
téléchargement : filters.fla
auteurs : Bolo Michelin , Grégory Dumas
Il suffit d'utiliser la function prevFrame prévue à cet effet
Exemple :
function recule(mc:MovieClip) {
mc.onEnterFrame = function() {
if(this._currentframe == 1) {
this.gotoAndStop(this._totalframes);
} else {
this.prevFrame();
}
}
}
Consultez les autres F.A.Q's