Les Bases de Flash : Code : AttachMovie
Nous voici dans ce super tutoriel pour une nouvelle notion : les occurrences bibliothèques !
Car nous avions déjà le nom qu'a notre clip dans la bibliothèque, l'occurrence qu'a un clip sur la scène, et Ô comme si ce n'était pas assez compliqué, voilà l'occurrence bibliothèque.
Mais d'abord, qu'est-ce qu'on va faire ici ?
On va utiliser attachMovie, qui sert à prendre un symbole dans la bibliothèque, et le placer là où on veut. ça peut permettre de créer une liste de boutons, ça peut permettre de mettre des fleurs partout, ça peut permettre de mettre des monstres dans un jeu, etc...
Donc attachMovie va aller chercher dans la bibliothèque, mais pour ça il faut que ton clip ait une occurrence dans la bibliothèque ! C'est chouette, il suffit d'aller dans la bibliothèque(CTRL+L), de faire un clic-droit sur le clip et cliquer sur "liaison",
puis on clique sur "Exporter pour ActionScript" et on lui donne un nom, ici "smbl"
Maintenant, il est occurrencé et on va pouvoir s'en servir...
donc on utilise la fonction attachMovie qui s'utilise comme ceci :
conteneur.attachMovie("occurrence Bibliothèque","Nouvelle Occurrence Scène", calque);
Ce qui veut dire que le clip sera chargé dans le clip "conteneur" qui se trouve déjà sur la scène ! vous pouvez aussi mettre "this." à la place de conteneur, si vous ne voulez pas créer un clip "conteneur".
Et ça nous donne ça :
attachMovie("smbl","caca",3);
caca._x = 300;
caca._y = 200;
on attach l'occurrence "smbl" et on lui donne comme occurrence scène "caca" et on la place sur le calque 3.
Après on modifie les positions, la rotation, ce qu'on veut.
Tout simple, nan ?
Bon maintenant, plus complexe. Je veux en charger 5, avec des positions aléatoires, donc... je vais utiliser une boucle ! Bien sûr. Mais comment les nommer ? je ne peux pas mettre plusieurs fois le même nom ? et si comme nom je donne "clip"+i (i étant la variable de la boucle for que je vais utiliser) ? Oui, bonne idée, mais après ? Comment je sais que c'est clip3 que je suis en train de placer ? et voici le sauveur : la variable de type Clip ! :
// Déclaration de la fonction aléatoire
//pour faire les positions après !
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
//on crée notre boucle (voir le chapitre sur les boucles)
for(i=0; i<5; i++){
/*Ah, tout est comme prévu, sauf le numéro du calque ! Ben oui, il peut pas y avoir 2 clips
sur un calque, alors this.getNextHighestDepth() calcule le clip vide juste au dessus ! Sympa !*/
var nouveauClip:MovieClip = this.attachMovie("smbl","Clip"+i,this.getNextHighestDepth());
//et puisque c'est un clip, on lui donne des positions :
nouveauClip._x = randRange(0,300);
nouveauClip._y = randRange(0,300);
//des positions aléatoires pour qu'elles soient différentes !
}
ça va ? tout pigé ? Vous pouvez aussi faire des attachMovies qui soient "onEnterFrame" mais faites attention : si la scène est surchargée, ça bug !
Voilà, merci d'avoir suivi ce tutoriel qui s'inscrit dans la suite de tutoriels flash,
Dawlin
Les Bases de flash : Code : les fonctions »
Sois le premier à débuter une discussion à propos de cet article !
Ajoute un commentaire !