Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 4 und Flash 5

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-01-2006, 13:56   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 9
Post Actionscript - generierte Textfelder ansprechen

Hallo, kann mir jemand helfen?

Ich möchte in einer Scheife mehrere textfelder mit dem Namen "xxx"+<Schleifenindex> (also xxx1, xxx2, xxx3, ...) erstellen.
Und diese dann mit einem text versehen ... dabei bin ich auf einige Probleme gestossen.

Code:
...
_root.createEmptyMovieClip("grid",1);
with (_root.grid){
    var i=0;
    var k=10;
    while(i<k){
        _root.createTextField("xxx"+i,1,100,i*30,100,20);
	"xxx"+i.text = "mytxt"
        i++;
    }
}
...
Das funktioniert nicht, es wird kein Textfeld mit Text angezeigt.
nun ist mir schon klar, dass ich bei "xxx".mytxt eigentlich die Anführungsstrichel weglassen müsste, aber wie krieg ich denn dann das mit dem Index hin?

... ich habe auch testhalber versucht, ein einzelnes Textfeld direkt anzusprechen.
Code:
    ...	
    while(i<k){
        _root.createTextField("xxx"+i,1,100,i*30,100,20);
	xxx0.text = "mytxt"
        i++;
    }
    ...
interessanterweise wurde auch hier kein Textfeld mit Text angezeigt.

... erstelle ich aber direkt das Textfeld xxx0 so wie hier:
Code:
    ...	
    _root.createTextField("xxx0",1,100,i*30,100,20);
    xxx0.text = "mytxt"
    ...
funktioniert alles einwandfrei - nur das Schleifenkonzept ist nicht mehr gegeben, welches aber notwendig ist,
weil die Anzahl der Textfelder variieren muss.
Somit brauche ich dringend eine Lösung für die erste Variante.



================================================== ================================

Weiterhin möchte ich dann gerne die Form des Textfeldes mit einer Funktion bestimmen.
Nun stellt sich fast wieder die gleiche Frage, wie übergebe ich das Textfeld an die funktion ??

Code:
function setText(obj,font,size,col){

    form = new TextFormat();
    form.font = font;
    form.size = size;
    form.color = col;
    obj.setTextFormat(form);
}

...

    var i=0;
    var k = 10;

    while(i<k){
        _root.createTextField("xxx"+i,1,100,i*30,100,20);
	"xxx"+i.text = "mytxt"
	setText("xxx"+i,"Tahoma",12,0x444444);
        i++;
    }
...
denn so klappt es nicht ...
Kann mir jemand helfen ???
Don-Ln ist offline   Mit Zitat antworten
Alt 12-01-2006, 14:16   #2 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
..lange Rede kurzer Sinn:
Code:
while(i<k){
        _root.createTextField("xxx"+i,1,100,i*30,100,20);
	_root["xxx"+i].text = "mytxt";//...nein ich habe keinen Punkt vergessen...
...
...btw, meldet flash nicht, daß Deine with-Funktion nicht funktioniert???
Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 12-01-2006, 14:21   #3 (permalink)
Neuer User
 
Benutzerbild von uhlenspiegel
 
Registriert seit: Jan 2006
Ort: Stuttgart
Beiträge: 33
Ich würde es so probieren:

//formatierung
txt_fmt = new TextFormat();
txt_fmt.font = "Arial";
txt_fmt.size = 12;
txt_fmt.color = 0x444444;

//textfelder erzeugen
for (var i = 0; i<10; i++) {
this.createTextField("textfeld"+i, 1000+i, 0, 0, 10, 20);
this["textfeld"+i].autoSize = true;
this["textfeld"+i].text = "Test "+i;
this["textfeld"+i]._y = i*30;
this["textfeld"+i].setTextFormat(txt_fmt);//formatieren
}
uhlenspiegel 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 18:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele