[Flash]Création dynamique d'objets

Création dynamique d'objets [Flash] - Divers - Graphisme

Marsh Posté le 23-10-2003 à 16:37:47    

Bonjour à tous,
 
Je voudrais créer dynamiquement un menu déroulant dans une animation. Les textes de mes items de mon menu sont placés dans un fichier txt. Je besoin de créer autant de zone texte dynamique que j'ai d'items dans mon fichier txt. Comment puis je alouer dynamiquement un nom d'occurence différent à mes zones textes ?
 
je sais pas si je suis très clair alors voilà une partie de mon code qui récupère les données de mon fichier txt :

Code :
  1. //Découpage de ma variable contenant les éléments de mon menu
  2. Elem_menu = TXT_Elem_menu.split("," );
  3. //Déclaration du tableau Menu
  4. Tab_Menu = [];
  5. //Déclaration des variables indiquant les niveaux du tableau Menu
  6. Niv1=0;
  7. Niv2=0;
  8. Niv3=0;
  9. //Format du texte des boutons du niveau 1
  10. var Format_Niv1 = new textFormat();
  11. Format_Niv1.font  = "Tahoma";
  12. Format_Niv1.size  = 10;
  13. Format_Niv1.color  = 0xFF0000;
  14. //Récupération des données de la variable du fichier texte
  15. //et reconstitution du tableau Menu
  16. for (i=0;i<Elem_menu.length;i++) {
  17. if (Elem_menu[i].slice(0,1) == "#" ) {
  18.  if (Elem_menu[i].slice(0,2) == "##" ) {
  19.   if (Elem_menu[i].slice(0,3) == "###" ) {
  20.    if (Flag==false) {
  21.     Tab_Menu[Niv1-1][1][Niv2-1][1]=[];
  22.     Flag=true;
  23.    }
  24.    Tab_Menu[Niv1-1][1][Niv2-1][1][Niv3] = Elem_menu[i].slice(3);
  25.    Niv3++;
  26.   }
  27.   else {
  28.    //Réinitilisation de la variable Niv3
  29.    Niv3=0;
  30.    //Réinitialisation de la variable Flag
  31.    Flag=false;
  32.    //Découpage et insertion dans Niveau 2
  33.    Tab_Menu[Niv1-1][1][Niv2] = [Elem_menu[i].slice(2)];
  34.    Niv2++;
  35.   };
  36.  }
  37.  else {
  38.   //Réinitilisation de la variable Niv2
  39.   Niv2=0;
  40.   //Réinitialisation de la variable Flag
  41.   Flag=false;
  42.   //Découpage et insertion dans Niveau 1
  43.   Tab_Menu[Niv1] = [Elem_menu[i].slice(1),[]];
  44.   Niv1++;
  45.   //Création d'un champ texte
  46.                       _root.createTextField("Btn",0,0,0,300,300)
  47.   Btn.text=Elem_menu[i].slice(1);
  48.  };
  49. }
  50. }


 
Dans la zone  
//Création d'un Champ texte
_root.createTextField("Btn",0,0,0,300,300)
 
à la place de "Btn" est il possible de greffer une variable comme ceci "Btn"+variable ?  


Message édité par ValM le 23-10-2003 à 16:43:03
Reply

Marsh Posté le 23-10-2003 à 16:37:47   

Reply

Marsh Posté le 23-10-2003 à 17:49:38    

Va plutot dans la section programmation, vu que c'est de l'actionscript, là...


---------------
W3C : Leading the Web to Its Full Potential... - Membre du W3C l33t club
Reply

Marsh Posté le 23-10-2003 à 19:04:29    

C'est fait, d'ailleurs je redirige les âmes charitables vers ce second >>> topic <<< qui me semble un peu plus clair. :)


Message édité par ValM le 23-10-2003 à 19:05:26
Reply

Marsh Posté le 24-10-2003 à 10:43:14    

La question ci-dessus est résolue mais me voilà devant un autre problème :
 
Comment fait on après pour accéder à un objet qui a un nom d'occurence stocké dans une variable ?
 
en JavaScript il existe une méthode getElementsByName() pour accéder à un objet facilement :
 
si on connaît son nom d'occurence :
_root.getElementsByName("monOccurence" ).text = "Bonjour"
 
ou
si le nom d'occurence est stockée dans une variable :
_root.getElementsByName(Nom_Oc).text = "Bonjour"
 
Je n'ai pas trouvé de méthode équivalente en ActionScript... Existe t'elle ? Peut on procéder d'une autre façon ?

Reply

Marsh Posté le 24-10-2003 à 11:35:18    

Chui débutant alors je peux que te donner des pistes.
Essaye la syntaxe à crochets.
un truc du style : _root[taVariable].text = "bonjour";
                   si ta variable est dans le scénar racine.
 
Ca doit marcher.

Reply

Marsh Posté le 24-10-2003 à 14:18:21    

Ok merci !
 
Sinon j'ai trouvé un autre system qui marche mais il a sa:
 
eval(Nom_Oc).text = "Bonjour";
 

Reply

Marsh Posté le 24-10-2003 à 14:26:48    

Pour préceiser :
les crochets transforment le contenu de la variable en adresse. (comme eval en fait alors) C' est plus court dans ce cas précis.

Reply

Marsh Posté le 25-10-2003 à 11:45:11    

J'devais être défoncé quand j'ai posté mon dernier message :D, ou alors j'ai des moments d'absence...
 
Merci pour la précision, et bon week-end !


Message édité par ValM le 25-10-2003 à 11:45:41
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed