jeudi 27 mai

[Flash | Actionscript] [AS] Générateur de logo

Ouaip! Et plus précisemment générateur de logo du genre IBM.
J'ai donc nommé cette fonction ibmizer!

Voilà le code:

function ibmizer (cible:MovieClip, incrementX:Number, incrementY:Number, thickness:Number) {
//on initialise les variables
var overBefore:Boolean = false;
var overNow:Boolean = false;
//on récupère les limites de l'objet
var limites:Object = cible.getBounds (this);
//on créé un clip vide dans lequel on va dessiner
var logo = this.createEmptyMovieClip (cible._name + "_ibmized", this.getNextHighestDepth ());
//on spécifie les options de dessin
logo.lineStyle (thickness, 0x000000, 100);
for (var y = limites.yMin; y < limites.yMax; y += incrementY) {
for (var x = limites.xMin; x < limites.xMax + incrementX; x += incrementX) {
overBefore = overNow;
//on regarde si le pointeur est en contact avec le clip cible
overNow = cible.hitTest (x, y, true);
//si on change d'état...
if (overNow != overBefore) {
if (overNow) {
//..et qu'on est en contact: on stocke l'abscisse
memX = x;
} else {
//..et qu'on n'est plus en contact: on trace!
logo.moveTo (memX, y);
logo.lineTo (x, y);
}
}
}
}
//on décale le logo créé
logo._x -= incrementX / 2;
//on masque la cible
cible._visible = false;
//on renvoie une référence au logo créé
return logo;
}

Voici un petit exemple d'utilisation:

Le code associé:

ibmizer (yo, 1, 8, 5);

Les paramètres de la fonction sont:

  • le Clip ciblé
  • la précision horizontale
  • l'espacement vertical (entre chaque trait)
  • l'épaisseur de chaque trait

Elémentaire mon cher Watson!
Faites moi signe si vous notez des bugs!

Posté par Quentin à 11:49 - Flash | Actionscript - [PL]