27 mai 2004
[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!
Publicité
Publicité
Commentaires
Q
C
C
Q
B