vue Les Bases de Flash : Code : Les array 2 et 3
Kommunauty
Connexion
Inscription
« Les Bases de Flash : Code : Les array

Les Bases de Flash : Code : Les array 2 et 3

le 27 aout 2009 • Flash • par Dawlin

Salut, toujours dans le prolongement des array, on va voir maintenant comment les grouper avec des boucles. Vous vous souvenez du club des machos ? Et ben on est repartis avec ça comme exemple !

Bon, on sait ce que c'est, ça :

var ma_string:String = "Quentin,Lou,Léonard,Eric,Maxime";
var mon_array:Array = ma_string.split(",");

Maintenant, on va apprendre vite fait à se servir d'une boucle for(){} :

ça marche comme ça :

for(on se crée une variable i=0; tant que i<3; on incrémente i++){
les choses entre accolades sont faites autant de fois que la boucle est valable, donc tant que i<3
}

Je reviendrais dessus plus en détail dans un autre tutoriel...

Donc, là on se fait juste comme ça, une boucle for, tant que i<5, on dit (on trace) que c'est la xieme fois qu'on passe dans cette boucle

for(i=0 ;i<5 ;i++){
trace("C'est la "+i+"ieme fois qu'on passe dans cette boucle");
//je reviens au début si i<5
}

bon, maintenant, on va afficher le contenu des arrays, en fonction de i.

par exemple, on va passer pour la 0ieme fois dans la boucle, on va afficher mon_array[i ]

c'est comme trace(i) sauf que là on trace une valeur de texte, c'est l'enregistrement numéro i de mon array... ça va ?

Pour que j'ai pas à changer i<4 quand ya un nouveau membre, je vais utiliser(encore) la propriété mon_array.length (qui détermine le nombre enregistrements dans l'array)

for(j=0; j<mon_array.length; j++){
trace("Nous avons un membre appelé "+mon_array[j]);
}

Donc tant que j est inférieur au nombre total d'enregistrements, on affiche la valeur de l'enregistrement numéro i, avec une petite phrase d'accompagnement.

On obtient ça :


Nous avons un membre appelé Quentin
Nous avons un membre appelé Lou
Nous avons un membre appelé Léonard
Nous avons un membre appelé Eric
Nous avons un membre appelé Maxime

Maintenant, on a vu que n°0 est directeur et n°1 est sous-directeur (cf le précédent tuto)

On va le faire dire, au lieu de tout faire à la main, donc à chaque fois que ya un n°

spécial, comme 0 ou 1, c'est à dire les numéros des directeurs, on dit un truc sinon on dit une autre phrase de base :


trace("Hiérarchie de notre club :");
for(j=0; j<mon_array.length; j++){
//SI j = 0
if(j==0){
trace("Mr."+mon_array[j]+" le directeur");
}
//SINON SI j = 1
else if(j==1){
trace("Mr."+mon_array[j]+" le sous-directeur");
}
//Sinon
else{
trace("Mr."+mon_array[j]+", macho de base");
}
}

Voilà la source de Array 2

Et voilà ! C'est tout ! Mais je me rends compte que ce tutoriel n'est pas assez long...

Donc je vais vous en remettre une tartine avec mon tutoriel 3 déjà préparé.

Dans ce nouveau tuto nous allons avoir besoin d'une fonction aléatoire,

// Déclaration de la fonction aléatoire
function randRange(min:Number, max:Number):Number {
     var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
     return randomNum;
}

Qui m'est extrêmement précieuse car extrêmement et tout le temps utile.

Elle fonctionne comme ça :

nombre = randRange(min,max);

Et flash vous donnera tout seul un nombre compris entre min et max ! Exellent !

Donc, vous insérez cette fonction en haut de votre animation, et vous pourrez ensuite vous en servir comme bon vous semble !

donc si vous rajoutez en dessous ce code :

//création d'une variable ayant une valeur aléatoire entre 0 et 10
var rand = randRange(0,10);
//affichage de cette variable dans le panneau de sortie avec la fonction trace (au cas où)
trace("La variable aléatoire appelée rand est égale à "+rand);

Vous obtiendrez ceci :


La variable aléatoire appelée rand est égale à 5

Passons à la pratique

Création d'un string appellée garcon pour servir dans une array garcona (de "garçon" + a)

var garcon:String = "Quentin|Léonard|Maxime|Lou";
var garcona:Array = garcon.split("|");

Création d'un string appellée garcons pour servir dans une array

var fille:String = "Emmanuelle|Cecile|Lucyle|Camille";
var fillea:Array = fille.split("|");

Note : vous vous souvenez que avant .split(","); séparait la string toutes les virgules ? et bien maintenant c'est .split("|"); alors ça sépare à chaque | !! C'est génial !!

Et maintenant, niak niak !!

Tirage au hasard d'une variable qui servira à trouver un nom de garçon, comprise entre 0 et le nombre de champ dans l'array, variable appelée g comme garçon et rand comme random,

c'est plus facile à s'en souvenir pour après

var grand = randRange(0,garcona.length-1);
trace(grand);

Donc c'est un nombre tiré entre 0 et le nombre d'enegistrement, -1 parce que vu qu'on commence de 0, c'est décalé. Puisqu'on utilise garcona.length et non pas "5" comme maximum, ça nous permet de modifier la liste sans pour autant avoir à changer le code.

Pareil avec les filles :

var frand = randRange(0,fillea.length-1);
trace(frand);

Nous avons maintenant un n° de garçon, un n° de fille, reste à les transformer en prénoms grâce à l'affichage des array :

trace(fillea[frand]);

Ici on trace l'enregistrement numéro frand (qui est tiré au hasard) de la liste (array) de noms de filles.

stockage dans une variable fnom, comme fille nom

fnom = fillea[frand];

Pareil avec les garçons

gnom = garcona[grand];
trace(garcona[grand]);

On affiche, avec une belle phrase, que l'on stock dansune variable :

(n veut dire "retourne moi à la ligne espèce de champ de texte !")

var full = gnom+" veut sortir avec "+fnom+"n hou les amoureux !!";

Et alors, maintenant, je vous laisse, parce que je n'ai rien de plus intéressant à dire, mais vous trouverez dans la source flash des exemples de trucs sympas à rajouter !

Source : Array+rand.fla

Voilà, merci d'avoir suivi ce ces tutorielS,

Dawlin

Les Bases de Flash : Code : les propriétés _ »


  
Aucun commentaire

Sois le premier à débuter une discussion à propos de cet article !



Ajoute un commentaire !

Ajouter une image... Trouvée sur internet » De mon PC »
Adresse URL :
Adresse de la page de la vidéo :
Taille du texte :
Couleur du texte :

Article lu 3617 fois.