Un tableau de boutons qui affiche ses propres clip externe

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 421 fois - Téléchargée 26 fois

Contenu du snippet

Les actions boutons sont les suivantes onRelease onRollOver onRollOut
Elle vont m'affichaient des clip loader externe associés dans un tableau
qui ne comprend que le nom externe du clip
et ainssi reduire le code pour chaque boutons

exemple vous avez 10 boutons bt_1 bt_2 ...
vous avez un tableau d'animation externe var tab = ["iceland" , "turquie"];
(iceland.swf , turquie.swf) les extention et le chemin seront rajouter au momment du load puisque c'est la meme pour tout les clips

ces 10 boutons - doivent afficher par onRelease une animation externe loader du nom anim_(nom du clip) au chemin anim_pays
- doivent cacher cette meme animation un fois loader
- doivent afficher par onRollOver une animation externe loader du nom txt_(nom du clip) au chemin txt_pays
- doivent Unloader par onRollOut cette meme animation externe

Source / Exemple :


var tab = ["iceland" , "turquie"];
var n = tab.length;

for (i=0 ; i<n ; i++)
{
	var mc = this["bt_"+i];
	mc.n = i;
	
	// action clic
	mc.onRelease = function ()
	{
		trace("anim_pays/anim_"+tab[this.n]+".swf");
		// Creation d'un clip conteneur anim
		createEmptyMovieClip("anim",3);
		
		// load l'anim
		anim.loadMovie("anim_pays/anim_"+tab[this.n]+".swf");
		
		// cache l'anim
		var interval = setInterval(function()
			{  if (anim.getBytesLoaded() == anim.getBytesTotal())
				{
					clearInterval(interval);
					anim._visible = false;
				}
			}, 20);		// 20 ms le temps que le clip se charge
		// continue la lecture de l'anim map monde 
		gotoAndPlay(17);
	}
	// action onRollOver
	mc.onRollOver = function ()
	{
		trace("txt_pays/txt_"+tab[this.n]+".swf");
		// Creation d'un clip conteneur txt
		createEmptyMovieClip("txt",1);
				
		// load l'anim
		txt.loadMovie("txt_pays/txt_"+tab[this.n]+".swf");
	}
	// action onRollOut
	mc.onRollOut = function ()
	{
		UnloadMovie(txt);
	}
}

Conclusion :


aucun bug
marche super bien

(peut etre revoir le code pour qu'il soit encore plus court)

A voir également

Ajouter un commentaire Commentaires
Messages postés
173
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
10 mai 2010

Merci ! C'est juste ce que je cherchais!
Messages postés
41
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
30 mai 2006

bonjour,
c'est un cas très particulier, donc contraignant.
il y a 2 3 coquilles et des choses pas utiles (trace...)

l.14 : la profondeur du clip risque de remplacer un clip existant : >this(ou _root).getNextHighestDepth() à la place.

l.17 : le chemin: "anim_pays/anim_" pourrait être passé en variable dans le tableau : tab[0]. ce qui ferait : loadMovie(tab[0]+tab[i]".swf");

l.19 - 27 : pourquoi ne pas lancer une fonction externe loader(mc)? là tu déclares ta fonction chaque fois, imagines au bout de 100 images!)

l.28 : ! cf. plus haut c'est un cas particulier ! , j'aurais fait un tableau à deux dimensions genre :
tab = [
["turquie", 17 ],
["lichtenstein", 13 ]
];
comme ça chaque clip peut aller à une frame différente.

l.33 : le trace c'est pour débugger?
l.35 : le niveau du clip txt ! il risque encore d'en effacer un autre...
l.36 : faut avoir deux swf (txt et image) et que le texte s'appelle "txt_"+pays. cas particulier.

bon, voila.
à part ça c'est bien pour voir comment marchent les fonctions imbriquées.
continue.
nico

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.