Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-09-2004, 15:21   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: dortmund
Beiträge: 23
Array auslesen, per schleife in textfelder schreiben

Hallo zusammen,

ich habe momentan ein kleines Problem, komme allerdings nicht auf die Lösung. Ich denke mal, dass ich den Wald vor lauter Bäumen nicht sehe...

Ich möchte aus einem Array per Schleife die einzelnen Elemente auslesen und direkt in textfelder schreiben (welche anschließend klickbar sein sollten) .
Hierbei sollte für jedes ausgelesene Element ein neues Textfeld/Movieclip erzeugt werden.

hier mein code:


Code:
stop ();
// variable aus txt datei laden
mV = new LoadVars ();
mV.load ("voss_artikel_txt/artikelnummern.txt");

//button aufruf
_root.button_bt.onRelease = function () {
	
	// geladene variable in array splitten
	splitString = String.fromCharCode (44);
	artikelArray = mV.artikelnummern.split (splitString);
	
	// variablen für schleife setzten
	var arraylaenge = artikelArray.length - 1;
	//trace (arraylaenge);
	var nr = 0;
	var textfeldposx = 10;
	var textfeldposy = 10;
	
	// einzelne variablen in textfelder schreiben
	do{
		trace ("start");
		trace (nr);
		trace (arraylaenge);
		_root.createTextField ("textfeld", nr, textfeldposx, textfeldposy, 100, 20);
		_root.textfeld.text = artikelArray[nr];
		/*if (textfeldposx <= 400){
			textfeldposx = textfeldposx + 25;
		} else if (textfeldposx > 400){
			textfeldposx = 10;
			textfeldposy = textfeldposy + 100;
		}*/
		nr++;
		trace ("ende");
		trace (textfeldposx);
		trace (textfeldposy);
		}	while (nr <= arraylaenge);
};
Ziel ist es, dass eine Datei ausgelesen wird, in der alle Artikelnummern gelistet sind, welche im ersten Schritt nur angezeigt werden soll.
Später sollen dann diese Einträge dem Benutzer die Möglichkeit geben einzelne Artikel inklusive Ihrer Beschreibungen aufzurufen.

Momentan wird nur ein Element angezeigt. Aufgrund des Ausgabefensters ist gesichert, dass die Schleife sonst richtig durchläuft.

Würde mich sehr über ein wenig Hilfestellung freuen.
Viele Grüße

Geändert von SirT. (02-09-2004 um 15:23 Uhr)
SirT. ist offline   Mit Zitat antworten
Alt 02-09-2004, 15:51   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
Zitat:
Zitat von SirT.
Ziel ist es, dass eine Datei ausgelesen wird, in der alle Artikelnummern gelistet sind, welche im ersten Schritt nur angezeigt werden soll.
Später sollen dann diese Einträge dem Benutzer die Möglichkeit geben einzelne Artikel inklusive Ihrer Beschreibungen aufzurufen.
dafür würde ich eher xml benutzen (siehe Signatur)
..ist übersichtlicher als Textdateien.
Zitat:
Zitat von SirT.
Momentan wird nur ein Element angezeigt. Aufgrund des Ausgabefensters ist gesichert, dass die Schleife sonst richtig durchläuft.
dein problem ist, dass du allen textfeldern den selben Instanzamen gibst ("textfeld") das darf natürlich nicht sein!
ich habe mal noch die var nr jewewils dran gehangen, sodass die textfelder dann
textfeld0, textfeld1 usw. heißen!
zudem habe ich die do-while schleife durch ne for schleife ersetzt und noch das ein oder ander geändert.. schau es dir einfach mal an und steig wie gesagt vielleicht für dein vorhaben auf xml um ...
ActionScript:
  1. _root.button_bt.onRelease = function () {
  2.     // geladene variable in array splitten
  3.     artikelArray = mV.artikelnummern.split (",");
  4.    
  5.     // variablen für schleife setzten
  6.  
  7.     var textfeldposx = 10;
  8.     var textfeldposy = 10;
  9.    
  10.     // einzelne variablen in textfelder schreiben
  11.     for(nr = 0; nr < artikelArray.length; nr++){
  12.         var name = "textfeld"+nr;
  13.         _root.createTextField(name, nr, textfeldposx, textfeldposy, 100, 20);
  14.         _root[name].text = artikelArray[nr];
  15.         /*if (textfeldposx <= 400){
  16.             textfeldposx += 25;
  17.         } else if (textfeldposx > 400){
  18.             textfeldposx = 10;
  19.             textfeldposy += 100;
  20.         }*/
  21.         trace ("ende");
  22.         trace (textfeldposx);
  23.         trace (textfeldposy);
  24.         };
  25. };
wenn du Fragen hast dann frag einfach

grz
pape
pape ist offline   Mit Zitat antworten
Alt 02-09-2004, 21:12   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: dortmund
Beiträge: 23
Vielen dank

das hat mir sehr geholfen. aus irgendeinem grund hat die übergabe des trennzeichens in der split anweisung nicht geklappt. mit dem umweg über eine zusätzliche variable funktioniert es...das ist die hauptsache.

vielen dank :-)
SirT. ist offline   Mit Zitat antworten
Alt 03-09-2004, 12:48   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: dortmund
Beiträge: 23
Weiterführende Frage:

da nun die ganzen artikelnummern ausgelesen werden und auch angezeigt werden ist das erste problem gelöst, leider hat sich allerdings ein neues ergeben.

da man die zahlen hinterher als buttons verwenden soll, habe ich mir gedacht dass ich für jedes textfeld einen movieclip erzeuge, dem ich dann ja die eigenschaften eines buttons zuweisesn kann. da es sich allerdings um eine nicht genau definierte anzahl von einträgen handelt müssten die mc's ebenfalls mit fortlaufender nummer benannt werden.
Wie kann ich diese im anschluss allerdings ansprechen?
Anscheinend kann ich in der punktsyntax keine variablen einfügen (_root.variable.on(release)...).

Da ich ebenfalls nicht für jeden erzeugten "button" im vorfeld ein on(release) befehl integrieren kann/möchte, bedarf es einer anderen lösung.

Für Anregungen und Hilfe wäre ich sehr dankbar...
viele grüße
SirT. ist offline   Mit Zitat antworten
Alt 03-09-2004, 14:28   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Ort: dortmund
Beiträge: 23
vielleicht kann mir ja jemand helfen, wenn er den code sieht...
ich habe schon ein bisschen rumexperimentiert leider ohne erfolg...der bildschirm bleib leer.

PHP-Code:
stop ();
// variable aus txt datei laden
mV = new LoadVars ();
mV.load ("voss_artikel_txt/artikelnummern.txt");

// startaufruf
_root.button_bt.onRelease = function () { 

    
//geladenen variable in array ausplitten
    
splitString String.fromCharCode (44);
    
artikelArray mV.artikelnummern.split (splitString);
    
    
//positionierungsvariablen setzten
    
var textfeldposx 10
    var 
textfeldposy 10
    
    
//schleife aufrufen (array elemente einzeln auslesen und in textfeldschreiben
    
for(nr 0nr artikelArray.lengthnr++){
        
        
//movieclip erzeugen
        
var mcname "text_mc"+nr;
        
trace(mcname);
        
_root.createEmptyMovieClip(mcname,0);
        
_root[mcname]._x textfeldposx;
        
_root[mcname]._y textfeldposy;

        
//textfeld in movieclip erzeugen
        
var nam "textfeld"+nr;
        
_root[mcname].createTextField(nam10010020); 
        
_root[mcname][nam].text artikelArray[nr];
        
trace ("schleife"+nr);
        
        
//neuen movieclip in erneuten durchlauf positionieren
        
if (textfeldposy <= 400){ 
            
textfeldposy += 15
        } else if (
textfeldposy 400){ 
            
textfeldposy 10
            
textfeldposx += 100
        };
    }; 
}; 

sieht jemand von euch vielleicht den/die fehler?
SirT. ist offline   Mit Zitat antworten
Alt 03-09-2004, 18:06   #6 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hi!
ActionScript:
  1. //...
  2.         _root.createEmptyMovieClip(mcname,nr);
  3. //...statt...
  4.         _root.createEmptyMovieClip(mcname,0);
sonst überschreibst du die Mcs immer und am ende ist nur einer in da.. du musst die mcs auf unterschiedliche ebenen legen!
beim textfeld funktioniert es, weil diese in den jeweiligen Mcs verschachtelt sind!

grz
pape
pape 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:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele