Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-11-2005, 21:16   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 37
[Problem]Dynamisch Textfelder erstellen

Hallo ihr, hab da mal wieder ein prob.
Ich hab folgendes vor:
-Variablen aus Datei lesen
-für jede Variable ein neues Textfeld erstellen
-Variable ins neue Textfeld schreiben

und so sieht mein script bislang aus:
Code:
  this.createEmptyMovieClip("new_mc", 1);
  new_mc.loadVariables("vars.txt");
  function checkParamsLoaded() { 
    counter=1;
      for (i in new_mc) {
		this.createTextField("a" + counter, counter, 50, 50*counter, 100, 50);
		this["a" + counter].type = "dynamic";
		this["a" + counter].wordWrap = true;
		this["a" + counter].text =new_mc[i];
		counter+=1;
	  }
      clearInterval(param_interval);
    }

var param_interval = setInterval(checkParamsLoaded, 100);
Aber leider Funktionierts nicht.
Bin mir ziehmlich sicher, dass es an den texfeldern liegt, wenn ich new_mc[i] trace bekomme ich die richtigen Ergebnisse zurück.
Wer also nett wenn einer von euch mir da helfen könnte.
alpharay ist offline   Mit Zitat antworten
Alt 04-11-2005, 22:08   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
nim besser anstatt loadVariables (ziemlich veraltet)
LoadVars

und

setInterval(checkParamsLoaded...
wer bitteschön ist den nach diesem aufruf "this" in checkParamsLoaded ?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 04-11-2005, 22:23   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 37
bin noch nich solange dabei, aber soweit ich weiß ist "this" der aktuelle mc, z.B. this._alpha gibt den alphawert des mcs an.
Naja, das mit Loadvars mag zwar aktueller sein, löst mein problem aber nicht.
alpharay ist offline   Mit Zitat antworten
Alt 05-11-2005, 16:35   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
"..Loadvars mag zwar aktueller sein, löst mein problem aber nicht.."
probier es doch erst einmal aus, bevor du dein urteil abgibst.
ein
setInterval(checkParamsLoaded, 100);
also zu hoffen, das nach 100 millisekunden alle daten übers internet komplett geladen wurden, ist wie rolett spielen. mit ein grund, warum diese funktion als veraltet gilt!

wenn eine funktion einem objekt zugeordnet ist, dann ist "this" stellvertreter für das jeweilige objekt. eine per setInterval aufgerufene funktion gehört jedoch niemandem.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 05-11-2005, 20:33   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 37
Hab jetzt mal alles umstrukturiert und auf Loadvars gesetzt.
Code:
 var lorem_lv:LoadVars = new LoadVars();
lorem_lv.onLoad = function (success:Boolean):Void {
	counter=1;
    if (success) {
		counter+=1;
		for(i in lorem_lv){
           trace(lorem_lv[i]);
		   _root.createTextField(i,counter*2,50,50*counter,100,50);
		   _root[i].text=lorem_lv[i];
		   
		}
    } else {
        trace("Unable to load external file.");
    }
}

lorem_lv.load("params.txt");
Jetzt wird zwar ein textfeld erstell, aber leider nur eins, obwohl es mehr sein sollten.
Das textfeld ninnmt den Text der letzten Ausgabe in trace an, woraus ich schließe, dass nur das letzte textfeld erstellt wird bzw. die anderen gelöscht werden.

Geändert von alpharay (05-11-2005 um 21:01 Uhr)
alpharay ist offline   Mit Zitat antworten
Alt 05-11-2005, 22:04   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
du warst ganz nahe drann. noch ein bisschen probieren und du hättest es alleine geschafft ;-)
ActionScript:
  1. // params.txt:
  2. // &a=aaa&b=bbb&c=ccc
  3. //
  4. var lorem_lv:LoadVars = new LoadVars();
  5. lorem_lv.onLoad = function(success:Boolean):Void  {
  6.     counter = 1;
  7.     if (success) {
  8.         for (i in this) {
  9.             if (typeof (this[i]) == "string") {
  10.                 trace(i+": "+this[i]);
  11.                 _root.createTextField(i, counter++, 50, 50*counter, 100, 50);
  12.                 _root[i].text = this[i];
  13.             }
  14.         }
  15.     } else {
  16.         trace("Unable to load external file.");
  17.     }
  18. };
  19. lorem_lv.load("params.txt");
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 05-11-2005, 22:51   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2005
Beiträge: 37
Großes Dankeschön
alpharay 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 04:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele