cs_MaX3315
Messages postés170Date d'inscriptionmercredi 18 juin 2003StatutMembreDernière intervention11 mai 2009
-
14 mars 2005 à 14:33
cs_MaX3315
Messages postés170Date d'inscriptionmercredi 18 juin 2003StatutMembreDernière intervention11 mai 2009
-
11 avril 2005 à 09:30
Bonjour,
Je souhaite créer à la volée des movieClip cliquables, en d'autre terme des buttons.
Il s'agit de charger une liste de langue dynamiquement dans un fichier XML (ca c fait) puis de construire une barre contenant tout les drapeux des langues disponibles, voici le code pour cette partie :
En rouge j'ai mis la ligne de code qui me semblait être la solution pour convertir à la volée un MC en button, afin de pouvoir associer des évenements mouseOver, mouseOut et onRelease....
MAis pour l'instant aucun évènement ne fonctionne.
L'affichage des drapeux et leur positionnement est correct.
John_Doe_88
Messages postés606Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention13 décembre 2006 14 mars 2005 à 15:56
Pqoi tu tiens a convertir tes clips en bouton ? A mon avis tu te casses
la tête pour rien parce que il suffit de faire un clip contenant un
bouton et de dupliquer ce clip.
cyberval
Messages postés4Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention 9 décembre 2005 8 avril 2005 à 13:31
Salut, alors voila comme tu as l'air davoir résolu le probléme ben je voulais savoir si il etais possible que tu m'envoies le code correspondant car moi ji arrive pas.... en fait ce que je voudrais c'est le code dans la boucle for correspondant aux étapes suivantes :
--> duplicate... (monBouton)
--> monButton.onrelease = function() { ... }
--> monButton.createEmtyMovieClip('toto',...)
--> monButton.toto.loadMovie('url');
cs_MaX3315
Messages postés170Date d'inscriptionmercredi 18 juin 2003StatutMembreDernière intervention11 mai 2009 11 avril 2005 à 09:30
Bonjour,
voici ce que j'ai bricolé au final, c'est peut être pas ce qu'il y a d'ideal mais ca fonctionne donc voilà :
--------------------------------------------------------------
for(j=0 ; j<_global.VALID_LANGUAGES.length ; j++)
{
var nom='flag/'+_global.VALID_LANGUAGES[j][0]+'.jpg'; // truc du style '/flag/US.jpg'
my_mc.createEmptyMovieClip('mc_flag_'+j,j+100);
//on creer un rectangle plein d'abord
my_mc['mc_flag_'+j].beginFill(0xff0000,0);
my_mc['mc_flag_'+j].lineStyle(2,0x000000,100);
my_mc['mc_flag_'+j].moveTo(0,0);
my_mc['mc_flag_'+j].lineTo(30,0);
my_mc['mc_flag_'+j].lineTo(30,20);
my_mc['mc_flag_'+j].lineTo(0,20);
my_mc['mc_flag_'+j].lineTo(0,0);
my_mc['mc_flag_'+j].codeLang=_global.VALID_LANGUAGES[j][0];
//on charge le drapeu
//on associe a ce rectangle plein un nouveau clip contenant cette fois l'image
my_mc['mc_flag_'+j].createEmptyMovieClip('mc_flag_img_'+j,this.j+50);
my_mc['mc_flag_'+j]['mc_flag_img_'+j].loadMovie(nom);
//// maintenant on transforme le clip en bouton:
//evenement associe...
if(_global.CURRENT_LANGUAGE==_global.VALID_LANGUAGES[j][0])
{
my_mc['mc_flag_'+j]._alpha=100;
} else {
my_mc['mc_flag_'+j]._alpha=50;
}
//gestion du ROLL OVER et ROLL OUT
my_mc['mc_flag_'+j].onRollOver = function() { this._alpha=100; }
my_mc['mc_flag_'+j].onRollOut = function() {
this._alpha=50;
if(this.codeLang==_global.CURRENT_LANGUAGE)
{ this._alpha=100; } else { this._alpha=50; }
}
//gestion de l'action
my_mc['mc_flag_'+j].onRelease = function() {
//il s'agit a partir du nom du movie clip qui se termine par mc_flag_<num>
var codeLang=-1
for(kk=0 ; kk<_global.VALID_LANGUAGES.length ; kk++)
{
my_mc['mc_flag_'+kk]._alpha=50;
if((new String(this)).indexOf('mc_flag_'+kk)>0)
{
//trace('Changement de langue vers >> '+_global.VALID_LANGUAGES[kk][0]);
codeLang=_global.VALID_LANGUAGES[kk][0];
}
}
if(codeLang!=-1) { _global.changementDeLangue(codeLang,this); }
else { trace('Error : language not avaible!'); }
}
my_mc['mc_flag_'+j]._x=j*35;
my_mc['mc_flag_'+j]._y=0;
}
--------------------------------------------------------------
NB _global.VALID_LANGUAGES est un tableau à deux dimensions contenant une liste de langue (code international et nom usuel)
Voilà je pense qu'il y a assez de commentaires pour comprendre ce que j'ai bricolé...