Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
912 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [AS] Dupliquer dynamiquement un champ texte.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[AS] Dupliquer dynamiquement un champ texte.

n°1247426
kwadbox
Posté le 17-11-2005 à 10:52:29  profilanswer
 

Salut à tous,
 
Je suis un novice sous ActionScript/Programmation. J'en avais fait il y a quelques temps, du temps de la version 4/5, en tant qu'infographiste pour mon site personnel, et comme je veux en refaire un (j'ai changé de branche entre-temps), j'ai besoin de me mettre à AS2.0 et à la nouvelle structure (sensibilité à la casse, typage des variables, etc.).
 
J'ai besoin d'une fonction me permettant de créer *plusieurs* "Textfield" de manière dynamique, afin d'en créer et de les disposer les uns en-dessous des autres, pour ensuite les fournir avec des données d'un XML. La partie XML/CSS/Chargement est ok. MAIS la création en série de champs texte ne fonctionne pas. Voilà ce que j'ai tenté :  
 

Code :
  1. function createTF(X,Y,L,H,nbr){
  2. var i:Number;
  3. for (i=0 ; i<nbr ; i++){
  4.  var myTF="CT"+i; //CT pour "ChampTexte", un chiffre pour différencier.
  5.  this.createTextField(myTF,i,X,Y,L,H);
  6.  trace(myTF); //trace: CT0, CT1, CT2.
  7.  this[myTF].border=true;
  8.  this[myTF].text="blabla";
  9.  trace(myTF.text); //trace: undefined, undefined, undefined.
  10. }
  11. };
  12. createTF(100,100,250,20,3); //si nbr=1 ok, mais plus de 1 (ici 3), marche pas.


 
Comme je l'ai indiqué, lorsque je passe le paramètre "nbr" de la fonction à "1", il me crée et me remplit bien le Textfield, alors nommé "CT0". Seulement, si je passe le "nbr" à un chiffre plus élevé (3 dans l'exemple), ça foire. Il ne me crée pas plusieurs champs.
 
Donc, mes questions :
 
1- Est-il possible de créer plusieurs TextField de cette manière ?  
 
2- Si oui, comment ?  quel doit être la structure de ma fonction ?
 
3- Si non, quelles sont les solutions pour résoudre le pb ?
 
Note : je suis en formation, et vu le proxy/filtrage qu'on a ici, je n'ai accés qu'à trés peu de sites pendant la semaine, si vous pouviez évitez les liens, ou alors sur Macromedia (au pire, je lirais le week-end, mais bon...).
 
Merci.
 :D


Message édité par kwadbox le 17-11-2005 à 14:31:33
mood
Publicité
Posté le 17-11-2005 à 10:52:29  profilanswer
 

n°1247607
mechkurt
Posté le 17-11-2005 à 14:35:55  profilanswer
 

Code :
  1. function createTF(X,Y,L,H,nbr){
  2. var i:Number;
  3. for (i=1 ; i<=nbr ; i++){
  4.  var myTF="CT"+i; //CT pour "ChampTexte", un chiffre pour différencier.
  5.  this.createTextField(myTF,i,X,Y+H*i,L,H); //changement de profondeur et de position en y avec "i"
  6.  trace(myTF); //trace: CT0, CT1, CT2.
  7.  this[myTF].border=true;
  8.  this[myTF].text="blabla";
  9.  trace(this[myTF].text); //trace: blahblah, blahblah, blahblah.
  10. }
  11. };


 
il les crée bien mais les uns au dessus des autres (le undefined c'est parcque tu as oublié this[])


---------------
D3
n°1247702
kwadbox
Posté le 17-11-2005 à 15:55:45  profilanswer
 

Parfait !
Cela fonctionne sans problème.
 
J'allais faire le placement des divers TextField par la suite, mais je voulais savoir pourquoi il ne me l'affichait pas. Je me suis rendu compte du problème de profondeur (il suffit d'utiliser l'incrémenteur i, et hop!), mais le trace ne m'affichait rien, et pour cause... j'm'fais tout petit, ok ?
 
Quant au problème d'affichage sur écran, il venait non pas du code, mais du fait que j'avais déjà des Champs Textes crées manuellement sur la scène. Du coup, CreateTextField ne semble pas vouloir en créer de nouveau avec le même nom d'instance (plutôt que de me les écraser...). Bref, c'est bon à savoir.
 
Merci !
 :jap:  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [AS] Dupliquer dynamiquement un champ texte.

 

Sujets relatifs
Coller du texte dans un JEditorPane ajoute une nouvelle lignecreation d'un fichier texte avec visual C++
[SQL Server] ntext -> <texte long>[VBA-EXCEL 2003] Dupliquer une feuille complete [DONE]
[commentaires] - ajout de champ[Résolu] Fichier texte <- PHP -> MySQL
fichier texte (ASCII)Changer le style de la police dans une zone de texte
Stocker le contenu d'un input texte dans une variable.Mise en forme d'un morceau de texte d'un commentaire
Plus de sujets relatifs à : [AS] Dupliquer dynamiquement un champ texte.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR