|
oilà
un petit tutorial pour que tu arrêtes de me dire que tu
ne sais rien faire sous flash... désormais tu n'auras plus
d'excuse voilà. Donc, cette après-midi, plusieurs de mes
neurones se sont sacrifiés ( paix à leur âme ) pour permettre
de comprendre l'incrémentation sous flash version anglaise
( il est pas question que je traduise nan mé ! ) ... et
ben en fait, c'est vraiment tout simple.
Je prendrai comme exemple pour ce tuto le caca du tamagoshi.
Le but est donc de faire faire apparaître un caca toutes
les 5 secondes ( ça nous fera revoir le repère temporel
dans Flash ). Après 5 secondes, deux possibilités : soit
la crotte a été nettoyée entre temps ( ça nous permettra
ainsi de revoir quelques notions sur les boutons ) soit
elle n'a pas été enlevée ( dans ce cas nous n'en rajouterons
pas une deuxième, le tamagoshi se retient merci ).
|
NDLR : Pourquoi as-tu pris cette
saloperie d'invention nippone pour exemple ? Tu
pouvais pas plutôt faire une abeille qui butine
une lavande et s'envole toutes les 5 secondes sous
les cricris des cigales au mois de juillet et...
? Bon allons-y tout de même...
|
Ingrédients :
- un movie clip tamagoshi.
- un movie clip compteur.
- un movie clip crotte.
- un bouton balai.
.
distinction des movies
|
|
On place nos movies sur la scène principale. Pour
l'instant, le compteur est un simple petit carré
rouge ( outil rectangle R ) que l'on a converti
en symbole ( F8 ) de type movie clip. La première
chose à faire, c'est Dam's qui me l'a dit : nommer
ces movies. Pour ce faire, un click droit sur chaque
movie, sélectionner " properties " et dans " instance
name " ( Ctrl-L ) écrire le nom du movie. Ainsi
je nomme le movie crotte crotte, le movie
compteur compteur et le movie tamagoshi tama
( waaah ! ).
|
.
état initial
|
|
Au début, quand le tamagoshi apparaît, on ne veut
pas qu'il crotte tout de suite. On va donc écrire
ça dans la frame 1 de la scène principale. click
droit, properties, actions ( Ctrl-L ) :
Set Property ("/crotte", Visibility) = False
Stop
La crotte est là mais invisible ( j'ai triché mais
promis, je referai un tuto sur le load movie ).
|
J'ai mis un STOP parce
que de toutes façons, tout va se jouer dans
la frame 1 de la scène, ça fait plus propre.
|
|
Quand tu choisis le
" set property ", tu constates qu'il y a
un " target editor " ( il faut appuyer sur
le bouton abc ) et oh miracle, il y a déjà
les noms d'instance de tous tes movies clip.
Donc Dam's avait raison, l'étape 1 est primordiale
merci Dam's.
|
|
False est une expression
et non une chaîne littérale, chose à corriger
en appuyant sur le bouton =.
|
|
.
le compteur
|
|
Bon là, ça devient plus intéressant. On edit le
movie compteur ( Ctrl-L pour afficher la
librairie puis click sur le movie compteur ). Pour
l'instant c'est un carré rouge, mais on pourra pour
le cacher le peindre ( U ) en noir ou diminuer son
opacité au minimum ( click droit sur le movie, properties,
color effects, alpha à 0 % ).
Récapitulons maintenant ce que l'on veut faire :
on va dire au movie compteur de compter en
secondes. secondes sera la variable à laquelle
on attribuera le temps. Quand cette variable sera
un multiple de 5 ( c'est à dire quand secondes
= 5 x p avec p entier ), le movie compteur
devra dire à crotte de devenir visible.
|
.
initialisation du compteur
.
variable "secondes"
|
|
On crée un nouveau layer ( sur celui du carré rouge
) où on va placer toutes nos actions. En premier
lieu, on initialise les variables : dans la 1ère
frame du movie compteur, properties, action
: Set Variable: "p" = "1" ( on ne met pas p=0 parce
que la crotte apparaîtrait quand secondes
= 5 x 0 = 0 c'est à dire au tout début ).
Dans la seconde frame, F6 pour mettre une keyframe,
properties, actions :
Set Variable: "secondes" = Int (GetTimer / 1000 )
Dans une dernière frame, F6, properties, actions
:
Go to and Play (2) pour ainsi ne pas réinitialiser
p à chaque fois.
|
Pourquoi ne pas mettre
les deux initialisations dans la même frame
? Eh bien tout simplement parce que l'on
va incrémenter la variable p à chaque tour,
et que si le movie clip relit la frame 1,
p reprendra alors la valeur 1. Il faudra
donc s'arranger pour que le movie clip ne
lise qu'une seule fois la première frame.
|
|
Par contre, le movie
clip devra relire à chaque tour la seconde
frame pour que la variable secondes
soit incrémentée : à chaque tour, secondes
prendra comme valeur la valeur entière du
temps écoulé / 1000. En effet, dans flash,
la fonction GetTimer() récupère le temps en
millièmes de seconde.
|
|
.
incrémentation
|
|
Bon, la variable secondes fonctionne, elle
récupère la valeur du temps. Il nous reste à rendre
la crotte visible toutes les 5 secondes. Dans la
deuxième frame du movie compteur, on rajoute
dans les actions :
If ("secondes" = 5 * p)
Set Property ("../crotte", Visibility) = True
Set Variable: "p" = p+1
End If
|
Le movie clip crotte
est situé dans la scène et actuellement
nous tapons le code dans le movie compteur.
On doit donc remonter l'arborescence pour
dire quelque chose à crotte et on
doit écrire "../crotte ".
|
|
Important ! Quand on
fait set variable, p+1 est une expression
et non une chaîne littérale, il faut appuyer
sur le bouton =. Bon voilà on a presque
fini
|
|
.
le coup de balai
|
|
Que ce passe-t-il si on compile le SWF maintenant
? Et bien la crotte apparaît au bout de 5 secondes
et puis plus rien, le tama reste dans sa merde et
toi tu passes pour un père indigne ! Vindiou ! N'oublions
pas que nous avons placé un bouton balai en haut
à droite. on click droit dessus, properties, actions
:
On (Release)
Set Property ("crotte", Visibility) = False
End On
Ici, on a pas besoin d'écrire "../" avant crotte
parce que le bouton est au même niveau que le movie
crotte. Un bouton n'a pas de nom d'instance.
Cliquez ici pour downloader
la source ( 26 Ko ) et ici pour voir
un exemple compilé.
|
|
|