Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-07-2006, 00:22   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 31
in schleife mehrere textfelder erzeugen

hallo,

wieso kann ich in unterer schleife, in der ich mehrere arrays auslese, nicht eine zweite reihe von textfeldern erzeugen?

HTML-Code:
konzerteXML = new XML();
konzerteXML.load("texte/konzerte.xml");
konzerteXML.ignoreWhite = true;
konzerteXML.onLoad = fertig;	 
function fertig (success)
{	
		var XMLDaten_datum = [];
		var XMLDaten_ort = [];
		var XMLDaten_klocation = [];		
		if (success)
		{
			for (var i=0; i<this.firstChild.childNodes.length;i++)
			{	
				XMLDaten_datum[i] = this.firstChild.childNodes[i].attributes.datum;
				XMLDaten_ort[i] = this.firstChild.childNodes[i].attributes.ort;				
				XMLDaten_klocation[i] = this.firstChild.childNodes[i].attributes.klocation;				
			
			_root.createTextField("teext"+i, i, 350, i*50+90, 0, 0);  
            _root["teext"+i].autoSize = true;
			_root["teext"+i].text = XMLDaten_datum[i];
			
			_root.createTextField("ort"+i, i, 450, i*50+90, 0, 0);  
            _root["ort"+i].autoSize = true;
			_root["ort"+i].text = XMLDaten_ort[i];		
			
			}
		}
		else {trace("fehler");}
}
bei zwei textfeldern wird nur das letzte angezeigt ?!
mavi.23 ist offline   Mit Zitat antworten
Alt 11-07-2006, 01:16   #2 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Es passt immer nur ein Objekt in eine Depth.
Und du hast das dann immer wieder überschrieben.
deine depths für die ersten textfelder ist "i".
und dann hattest du das bei den zweiten textfeldern einfach überschrieben.
jetzt fängt "f" d an wo i aufhört.
PHP-Code:
.....
if (
success)
        {
var 
f:Number this.firstChild.childNodes.length// Änderung hier....    
for (var i=0i<this.firstChild.childNodes.length;i++)
            {    
                
XMLDaten_datum[i] = this.firstChild.childNodes[i].attributes.datum;
                
XMLDaten_ort[i] = this.firstChild.childNodes[i].attributes.ort;                
                
XMLDaten_klocation[i] = this.firstChild.childNodes[i].attributes.klocation;                
            
            
_root.createTextField("teext"+ii350i*50+9000);  
            
_root["teext"+i].autoSize true;
            
_root["teext"+i].text XMLDaten_datum[i];
            
            
_root.createTextField("ort"+if450i*50+9000);// Änderung hier....
            
_root["ort"+i].autoSize true;
            
_root["ort"+i].text XMLDaten_ort[i];    
                        
f++;// Änderung hier....
            
            
}
        }
        else {
trace("fehler");}
}
..... 
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org

Geändert von b.asile (11-07-2006 um 01:17 Uhr)
b.asile ist offline   Mit Zitat antworten
Alt 11-07-2006, 10:19   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 31
cool, danke - hab ewig rumprobiert und bin fast verzweifelt
mavi.23 ist offline   Mit Zitat antworten
Alt 11-07-2006, 13:12   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 31
irgendwie versteh ich's doch nicht, wieso geht das denn jetzt mit einem dritten textfeld nicht?

PHP-Code:
konzerteXML = new XML();
konzerteXML.load("texte/konzerte.xml");
konzerteXML.ignoreWhite true;
konzerteXML.onLoad fertig;     
function 
fertig (success)
{    
        var 
XMLDaten_datum = [];
        var 
XMLDaten_ort = [];
        var 
XMLDaten_klocation = [];        
        if (
success)
        {
            var 
k:Number this.firstChild.childNodes.length;
            var 
m:Number this.firstChild.childNodes.length;            
            for (var 
i=0i<this.firstChild.childNodes.length;i++)
            {    
                
XMLDaten_datum[i] = this.firstChild.childNodes[i].attributes.datum;
                
XMLDaten_ort[i] = this.firstChild.childNodes[i].attributes.ort;                
                
XMLDaten_klocation[i] = this.firstChild.childNodes[i].attributes.klocation;                        

            
_root.createTextField("datum"+ii350i*50+909050);  
            
_root["datum"+i].htmlText XMLDaten_datum[i];
            
            
_root.createTextField("ort"+ik450i*50+909050);  
            
_root["ort"+i].htmlText XMLDaten_ort[i];            
            
k++;
            
            
_root.createTextField("klocation"+im550i*50+909050);  
            
_root["klocation"+i].htmlText XMLDaten_klocation[i];        
            
m++;    

            }
        }
        else {
trace("fehler");}

p.s. ist das jetzt eigentlich auch möglich, in der schleife, eine instanz eines buttons mit einem link aus einer xml-datei einzufügen.

z.b.

schleife:

-songtitel[0] -songlänge[0] -btn_playbutton[0] (instanz - link aus xml)
-songtitel[1] -songlänge[1] -btn_playbutton[1] (instanz - link aus xml)

Geändert von mavi.23 (11-07-2006 um 13:22 Uhr)
mavi.23 ist offline   Mit Zitat antworten
Alt 11-07-2006, 13:32   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...du benutzt ja bei "k" und "m" auch wieder die selben Tiefen. Eigentlich brauchst du auch keine 2te Variable. Nehmen wir mal an, die Einträge sind maximal 100 lang:
PHP-Code:
_root.createTextField("datum"+ii350i*50+909050);   
            
_root["datum"+i].htmlText XMLDaten_datum[i]; 
             
            
_root.createTextField("ort"+ii+100450i*50+909050);   
            
_root["ort"+i].htmlText XMLDaten_ort[i];             
                     
            
_root.createTextField("klocation"+ii+200550i*50+909050);   
            
_root["klocation"+i].htmlText XMLDaten_klocation[i]; 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-07-2006, 13:58   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 31
cool, das mit den textfeldern funktioniert jetzt einwandfrei

aber wie ist das mit instanzen von mc's in der schleife?

PHP-Code:
            this.mc_play.duplicateMovieClip ("duplikat"+ii+300);
        
this.mc_play["duplikat"+i]._x 650;
        
this.mc_play["duplikat"+i]._y i*20+70
so dachte ich mir das - so funktioniert es aber leider nicht
mavi.23 ist offline   Mit Zitat antworten
Alt 11-07-2006, 14:02   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Nee, kann ja nicht klappen. Du duplizierst "mc_play" der dann aber nicht "in" mc_play liegt:
PHP-Code:
this.mc_play.duplicateMovieClip ("duplikat"+ii+300); 
this["duplikat"+i]._x 650
this["duplikat"+i]._y i*20+70
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-07-2006, 14:06   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 31
hm, funktioniert leider auch nicht, gibt es da noch mehr zu beachten ?
mavi.23 ist offline   Mit Zitat antworten
Alt 11-07-2006, 14:13   #9 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Der Pfad muss halt stimmen. Wenn das mit im onLoad() steht, dann ist "this" falsch.
PHP-Code:
var mc mc_play.duplicateMovieClip ("duplikat"+ii+300);  
mc._x 650;  
mc._y i*20+70
Kann man sonst aber nur raten...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 11-07-2006, 14:33   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 31
komisch, das funktionert einfach nicht mit dem duplicateMovieClip ?!

noch ne andere frage - wenn ich den link wechsle, und da andere textfelder generiert werden, überlagern sich diese momentan noch mit den alten textfeldern. was ist da die geschickteste methode, die alten textfelder zu löschen, sobald man das frame verlässt.

p.s. könnt ihr ein wirklich gutes und umfangreiches buch für aktionscript empfehlen, das auch gut verständlich ist und viele praktische beispiele hat

übrigens, danke schon mal - ihr habt mir schon sehr weitergeholfen
mavi.23 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:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele