:::::: mxPrototypes ::::::

Retour à l'accueil (site en flash) :::: Retour à l'accueil (site en html ) :::: ajouter aux favoris

fonction blink() pour faire clignoter un movieClip à une fréquence donnée

Dans ce tutorial on se propose de fabriquer une fonction 'blink()' pour faire clignoter un movieClip.
On devra pouvoir spécifier en paramêtre de cette fonction la fréquence de clignotement, ou la période.

Ici on a choisi d'utiliser la période, qui sera exprimée en millisecondes.

Voyons tout d'abord comment va fonctionner la fonction:
il nous faut un système pour inverser une propriété d'un movieclip, en l'occurence la propriété '_visible'.

Le bout de code suivant nous convient parfaitement:
this._visible=not this._visible;
on rappelle que 'this' désigne l'objet (movieclip) sur lequel on applique la fonction.
Mot à mot, cette ligne signifie :
"on applique à la propriété '_visible' le contraire de la propriété '_visible' "

Ainsi donc, chaque fois que ces instruction seront lues, le clip changera d'état.
Bien.

Maintenant, il nous faut faire en sorte que ces instructions ne soient executées que toutes les X millisecondes.
Il faut penser au fait que la fonction sera faite pour s'executer en boucle.

Pour controler la fréquence de clignotement, on va utiliser une variable 'prochainClignotement' qui par son changement d'état nous indiquera à quel moment il faut rendre visible ou invisible le movieClip.

Cette variable vaudra 'null' tout de suite après un changement d'état du clip.
Immédiatement après, on donnera comme valeur à cette variable 'l'heure' à laquelle devra se produire le prochain clignotement.
Dès lors, la fonction continue de tourner en boucle, en testant à chaque fois si le delai épuisé, c'est à dire si l'heure actuelle est devenue 'supérieure' à l'heure fixée dans la variable.
(cette 'heure' est un chiffre en millisecondes, c'est pourquoi on parle d'heures 'supérieures' à d'autres).

Si le délai est épuisé, on applique le changement d'état au clip, et on réinitialise notre variable 'prochainClignotement' à 'null'.

La boucle est bouclée !


Voici le code, commenté:

Movieclip.prototype.blink=function (periode) {
	/** la ligne ci-dessous voit si 'prochainClignotement' vaut 'null',
	 et si oui elle fixe le délai **/
	(this.prochainClignotement==null) ? this.prochainClignotement=getTimer()+periode : null;

	/** ici on teste si on a atteint le délai,
	 donc si l'heure a dépassé l'heure fixée pour le changement **/
	if (getTimer()>=this.prochainClignotement) {
		/** si oui, on change l'état du movieClip **/
		this._visible=not this._visible;
		/** et on remet 'prochainClignotement' à 'null' **/
		this.prochainClignotement=null;
	}
	/** sinon, c'est terminée, c'est à dire qu'on recommence,
	 la fonction doit tourner en boucle **/
	
}
.

.Commentaires:

damien:
Vous pouvez laisser des commentaires sur l'utilisation des fonctions.
matris:
salut
zawa:
Ca a l'air génial tout ça, mais ou place t'on le code svp?
damien:
salut, et bien le code tu le mets dans les actions d'une image quelconque de ton anim, par exemple la première image, et puis après tu appelles la fonction quand tu veux :)
zawa:
merci...
Shurikn:
Je voulais juste saluer le taff ;) Bravo et a plus sur le board
gfsdg:
fgdsgdfgsdfgsdf
Bouh:
PoBo
moi:
j ariive pas
mat:
J'ai du mal a utiliser le code commenté pourais tu mettre un exemple simple avec les variables en italique merci d'avance.
mat:
au fait j'suis un vrai nul...desolé
damien:
d'abord tu places ce code dans ton animation SANS RIEN CHANGER ! (pas chercher à 'adapter' à ton nom de clip lol) puis après: monClip.onEnterFrame=function(){this.blink(500);}
one:
je crois que vous devez organiser un peu votre site. a part ca tout est super
ASYTO:
Nickel, je comprenais pas tres bien les proto.....mais la c'est nikel...Comment fait on pour changer la vitesse de cliggnotement?merci
ASYTO:
Nickel, je comprenais pas tres bien les proto.....mais la c'est nikel...Comment fait on pour changer la vitesse de cliggnotement?merci
asyto:
oula doublon sorry =-\
msa:
ce site est tres bien
teknofil:
Je commence tout juste avec Flash, et je dois dire que je comprend pas beaucoup de choses pour le moment! J'ai essayé d'insérer le script mais ça ne fonctionne pas! :(
elboso66@hotmail.com:
je voudrai ke l'on m'aide svp je debute en flash et j'aimerai un peu d'aide
GoSa:
La reson que le code ne marche pas c'est parce que, il faut mettre MovieClip.prototype.blink et non Movieclip.prototype.blink.Flash est case sensitive, donc Movieclip et MovieClips sont 2 different mots.
blakos:
merci pour les codes...
zeus:
test
remi:
Salut les hacker !
remi:
Salut les hacker !
webmasta:
whats it with da fucjking grey faded text ?? azzhole