IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Actionscript 2 > Les MovieClips
        Comment créer un bouton par actionscript ?
        Comment changer dynamiquement la couleur d'un clip ?
        Comment appliquer un filtre dynamiquement à un clip?
        Comment jouer un clip à l'envers ?



Comment créer un bouton par actionscript ?
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

// On crée un clip vide dans le clip courant, et on lui affecte le prochain niveau disponible
var mc:MovieClip = this.createEmptyMovieClip("mBouton", this.getNextHighestDepth());

// On dessine le bouton (ici un carré de 100x100 placé aux coordonnées (10,10))
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();

// On lui affecte les comportements de bouton:
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.


Comment changer dynamiquement la couleur d'un clip ?
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);
// voir la documentation (F1) pour les arguments
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;

// Couleur souhaitée : 0xcc99ff
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.


Comment appliquer un filtre dynamiquement à un clip?
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; // Effet biseau
import flash.filters.BlurFilter; // Effet de flou
import flash.filters.DropShadowFilter; // Effet d'ombre portée
import flash.filters.GlowFilter; // Effet de rayonnement
import flash.filters.GradientBevelFilter; // Effet de biseau en dégradés
import flash.filters.GradientGlowFilter; // Effet de rayonnment en dégradé
// ou bien 
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; // Effet biseau
import flash.filters.GlowFilter; // Effet d'ombre portée

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

Comment jouer un clip à l'envers ?
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) {
            // Le clip est sur la 1ère image, on retourne à la dernière
            this.gotoAndStop(this._totalframes);
        } else {
            this.prevFrame();
        }
    }
}


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003-2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.