Bonjour a tous, c'est mon premier poste. Je suis étudiant dans le cadre d'un projet d'un site immersif, je cherche dans un premier dans a créer une nuée de lettres placée en aléatoire dans une zone définie. Au passage de la souris ces lettres s'éparpillent.
J'ai procédé de cette façon : j'ai créé ma nué de lettres avec une boucle "for", et j'ai fait un tableau "array" afin de créer l'aléatoir entre les lettres de l'alphabet.
Pour l'intéractivité, jai créer un clip ( un cercle alpha= 0 ) qui se place en fonction du placement de la sourie et une class tween afin que les lettres réagissent avec la sourie.
Voila le code:
var longueur_zone:Number;
var largeur_zone:Number;
var nombre_de_clips= 200;
import mx.transitions.Tween;
import mx.transitions.easing.*;
function placement() {
longueur_zone = 300+random(100);
largeur_zone = 200+random(100);
}
// -----------------------------------------------------------------------------------
for (i=1; i<nombre_de_clips; i++) {
// -----------------------------------------------------------------------------------
var conteneur= this.createEmptyMovieClip ( "conteneur"+i,i+nombre_de_clips);
var clip = conteneur.createTextField("text_"+i, i, random(500), random(300), 300, 100);
var alphabet:Array = new Array("a", "b", "c", "d", "e", "f", "g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
var couleur:Array = new Array("");
var dutext:String = alphabet[random(23)];
clip.text = dutext;
var my_fmt:TextFormat = new TextFormat();
//my_fmt.color = 0x000000;
my_txt.setTextFormat(my_fmt);
placement();
clip._x=longueur_zone;
clip._y=largeur_zone;
conteneur.cacheAsBitmap=true;
}
// -----------------------------------------------------------------------------------
onEnterFrame = function(){
souris._x=_xmouse;
souris._y=_ymouse;
for (j=1; j<nombre_de_clips; j++){
var clip_avec_texte =_root["conteneur"+j]
if (souris.hitTest( clip_avec_texte)) {
new Tween(clip_avec_texte, "_x", Strong.easeIn, clip_avec_texte._x, random(250), 1, true);
new Tween(clip_avec_texte, "_y", Strong.easeIn, clip_avec_texte._y, random(250), 1, true);
}
}
}
Le problème , c'est que c'est beaucoup trop lent !!!! de plus il n'y a que 200 lettres et je compté en mettre beaucoup plus <1000 !
Donc si vous avez une solutions pour omtimisé ce code ou pour obtenir le mème effet avec une autre solution !
Merci d'avance,
Frod