Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-03-2008, 12:07   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
textfelder dynamisch erzeugen

ist sicher ne noob frage, aber ich packs nicht:

ich will n verschiedene textfelder erstellen und diesen einen text zuweisen.

ActionScript:
  1. for (n=0; n<10; n++) {
  2.     _root.holder.createTextField(???, 1, bla, bla, bla, bla);
  3.     _root.holder.???.text = 'Test';
  4. }

wie erzeuge ich die namen dynamisch, wie spreche ich sie an? (da wo die ??? sind)

Geändert von fuchsbau (09-03-2008 um 12:10 Uhr)
fuchsbau ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:08   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
ActionScript:
  1. _root.holder.createTextField("meinTextFeld", 1, bla, bla, bla, bla);
  2. _root.holder["meinTextFeld"].text = 'Test';

gruß
sebastian ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:12   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
und woher weiß ich, dass ich jetzt das 4te oder das 8te anspreche? geht mir um die benennung abhängig von n.

theoretisch irgendwas mit nem array
fuchsbau ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:13   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Spielt ja keine Rolle wie die heißen und woher die kommen. Kannst statt
des Strings natürlich auch eine Variable nehmen. Geht hier ja nur um
die Syntax.
sebastian ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:15   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
kannst das beispiel mit der variable mal bringen, die syntax ist mir halt prinzipiell klar, ich bekomm nur das n nicht reingebaut sprich bekomm bei der erstellung schon nicht hin, den namen aus string + variable zuzuordnen.
fuchsbau ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:15   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
ActionScript:
  1. _root.holder.createTextField(auchBla, 1, bla, bla, bla, bla);
  2. _root.holder[auchBla].text = 'Test';
sebastian ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:19   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
mmmh. ok, dann konkret:

ActionScript:
  1. for (i=0; i<10; i++) {
  2. _root.holder.createTextField('textfeld'+i, 1, 0, 524-i*16, 75, 540);
  3. _root.holder['textfeld'+i].text = 'Test '+i;
  4. _root.holder['textfeld'+i].setTextFormat(standardFormat);
  5. }

klappt nicht. wird nur das letzte angezeigt weil jedes weitere das davor zu überschreiben scheint.

Geändert von fuchsbau (09-03-2008 um 12:22 Uhr)
fuchsbau ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:22   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Du erstellst alle auf der gleichen Tiefe. Deswegen werden die überschrieben

Versuchs damit:
ActionScript:
  1. _root.holder.createTextField('textfeld'+i, _root.holder.getNextHighestDepth(), 0, 524-i*16, 75, 540);
sebastian ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:24   #9 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
ich idiot. danke vielmals, sitz da echt seit gestern abend dran...
fuchsbau ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:26   #10 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Ja, so ist das manchmal. Kennt wohl jeder Programmierer

Viel Spaß damit
sebastian ist offline   Mit Zitat antworten
Alt 09-03-2008, 12:42   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.138
Wie wär's denn die Textfelder in einem Array zu referenzieren? Dann spart man sich den Umstand sich die Namen merken zu müssen.
Omega Psi ist offline   Mit Zitat antworten
Alt 09-03-2008, 15:21   #12 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Wie wär's denn die Textfelder in einem Array zu referenzieren? Dann spart man sich den Umstand sich die Namen merken zu müssen.
klingt nach der lösung, die ich ursprünglich auch gesucht hab, kannst du kurz n codeschnippsel dafür geben? danke
fuchsbau ist offline   Mit Zitat antworten
Alt 09-03-2008, 15:26   #13 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Wobei das meiner Meinung noch keinen Sinn macht, so lange du die
Felder später nicht wiederverwenden willst.

ActionScript:
  1. var a = new Array();
  2. for (i=0; i<10; i++)
  3. {
  4.   var name = "textfeld"+i;
  5.   _root.holder.createTextField(name, 1, 0, 524-i*16, 75, 540);
  6.   a.push(_root.holder[name]);
  7. }

(V7 gibt leider bei createTextField noch keine Referenz auf das Textfeld zurück)
sebastian ist offline   Mit Zitat antworten
Alt 09-03-2008, 15:42   #14 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.138
Aber er will sie doch anspechen:
ActionScript:
  1. var textFields:Array;
  2. function initialize():Void {
  3.   this.textFields = new Array();
  4.   this.initializeTextFields();
  5. }
  6. function initializeTextFields(count:Number):Void {
  7.   for (var a:Number = 0; a<count; a++) {
  8.     this.textFields[a] = this.createTextField("textField"+i, this.getNextHighestDespth(), 0, i*20, 100, 20);
  9.   }
  10. }
  11. function getTextFieldAt(index:Number):TextField {
  12.   return this.textFields[index];
  13. }
Am besten auch alles sauber in Funktionen kapseln. Das hilft dir generell dich im Code zu orientieren.
Omega Psi ist offline   Mit Zitat antworten
Alt 09-03-2008, 15:43   #15 (permalink)
Neuer User
 
Registriert seit: Feb 2006
Beiträge: 20
super, dank euch!
fuchsbau ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele