[Flash/Actionscript] Comment manipuler du texte

Comment manipuler du texte [Flash/Actionscript] - Flash/ActionScript - Programmation

Marsh Posté le 21-03-2006 à 23:51:54    

Bonjour tout le monde,
 
J'ai beaucoup beaucoup cherché et là j'avoue que je suis perdu. Je voudrais savoir si il est possible de créer automatiquement des champs de textes avec un nom d'occurence différent a chaque fois.
 
Autrement dit pour faire simple, est-l par exemple possible de faire en sorte que lorsqu'on appuie sur un bouton, 3 champs de textes soient créés avec chacun un nom d'occurence différent pour ensuite pouvoir les remplir par d'autres automatismes ?
Si oui, comment ? :]
 
Merci d'avance à ceux qui se pencheront sur ce cas.

Reply

Marsh Posté le 21-03-2006 à 23:51:54   

Reply

Marsh Posté le 22-03-2006 à 07:49:26    

for (i=1;i<=3;i++) {
   this.createTextField("text_"+i+"_txt", i, 100, 100*i, 300, 100);
   this[("text_"+i+"_txt"].text = Math.random();
}

Reply

Marsh Posté le 22-03-2006 à 14:22:56    

Woot :]
Je teste ça tout à l'heure merci merci merci :)

Reply

Marsh Posté le 23-03-2006 à 11:11:20    

Ok pour ça :
 
for (i=1;i<=3;i++) {
   this.createTextField("text_"+i+"_txt", i, 100, 100*i, 300, 100);
   this["text_"+i+"_txt"].text = Math.random();
}
 
Seulement si je veux mettre mon texte en.. disons rouge :
 
for (i=1;i<=3;i++) {
   this.createTextField("text_"+i+"_txt", i, 100, 100*i, 300, 100);
   this["text_"+i+"_txt"].text = Math.random();
   this["text_"+i+"_txt"].color = 0xFF0000;
}
 
ça marche pas :)

Reply

Marsh Posté le 23-03-2006 à 11:58:54    

[:angefox]  

Code :
  1. var my_fmt:TextFormat = new TextFormat();
  2. my_fmt.color = 0xFF0000;
  3. for (i=1;i<=3;i++) {
  4.    this.createTextField("text_"+i+"_txt", i, 100, 100*i, 300, 100);
  5.    this["text_"+i+"_txt"].text = Math.random();
  6.    this["text_"+i+"_txt"].setTextFormat(my_fmt)
  7. }


---------------
D3
Reply

Marsh Posté le 23-03-2006 à 11:59:10    

[:angefox]  
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0xFF0000;
for (i=1;i<=3;i++) {
   this.createTextField("text_"+i+"_txt", i, 100, 100*i, 300, 100);
   this["text_"+i+"_txt"].text = Math.random();
   this["text_"+i+"_txt"].setTextFormat(my_fmt)
}


---------------
D3
Reply

Marsh Posté le 23-03-2006 à 17:14:57    

okkkkkkkk
he be, action script me rend fou. Pourtant je sais faire du C et du php, mais là j'ai l'impression qu'il y a des bugs....
 
Exemple :
 
Je suis dans un MC controleur, je veux effectuer une action sur un MC appelé "Barocco", nom d'occurence contenu dans un tableau appelé "classical".
Donc dans une frame du controleur j'ai :
 
trace(_root.classical[0]);
_root[classical[0]]._x += 5;
 
Normalement ya une boucle qui agit sur le tableau mais la je simplifie en mettant 0 car c'est l'entrée qui correspond à Barocco.
Donc la console affiche bien Barocco grâce au trace mais le changement de propriété ne marche pas... alors je modifie histoire de voir comme ceci :
 
trace(_root.classical[0]);
_root.Barocco._x += 5;
 
et là pouf ça marche o_O Il se passe quoi avec les variables dans flash ? :D
Ah oui et classical est déclaré sur la scène donc c'est un global.

Reply

Marsh Posté le 23-03-2006 à 17:39:22    

Bon j'ai trouvé en faisant comme ceci :
 
essai = _root.classical[0];
trace(essai);
_root[essai]._x += 5;
 
C'est nimporte quoi mais bon, ça marche :]

Reply

Marsh Posté le 25-04-2006 à 13:58:18    

Je suis en train de brosser les divers sujets, comme je suis tombé sur le tiens, je donne mon avis. Plutôt que de faire une boucle simple pour créer des occurences nommées, tu peux l'intégrer à une fonction, par exemple :
 

Code :
  1. function createTF(X:Number,Y:Number,L:Number,H:Number,nbr:Number):Void{
  2. var i:Number;
  3. for (i=1 ; i<=nbr ; i++){
  4. var myTF:String="CT"+i;  //ça donnera donc CT1, CT2, etc... jusqu'au nombre "nbr"
  5. this.createTextField(myTF,i,X,Y+H*i,L,H);   //changement de profondeur et de position en Y avec "i"
  6. this[myTF].border=true;
  7. this[myTF].text="blabla"; //pour tester
  8. }
  9. };


 
Ainsi, tu crées tes champs en appelant la fonction :

Code :
  1. createTF(50,50,200,20,5);


 
et il te créeras 5 champs textes d'une taille de 200 en longueur et de 20 en hauteur, nommés CT1, CT2, CT3, CT4, CT5, le premier positionné en X à 50, en Y à 50, les suivants étant positionnés les uns à côté des autres sur les coordonnées (Y).

Reply

Sujets relatifs:

Leave a Replay

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