• SpryFlashCMS das Flash CMS
  • TWUMBLE - bald online
  • Adobe User Group
Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-08-2004, 00:05   #1 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
[TUTORIAL] laden und verarbeiten von XML Dateien (basics)

Hi!

Es kam heute(gestern) die Frage auf, wie das funktioniert mit den XML-dateien!

ich habe mich dann mal wieder hingesetzt und es recht ausfühlich erklärt!

viel Spaß und Erfolg!

Einleitung:
Ich erkläre alles was man benötigt und werde Beispiele geben, sodass es verständlich sein sollte, was nun kommt!!!

1.
Zunächst werde ich kurz darauf eingehen, wie ein XML-file aufgebaut ist und wie man per Flash die Daten auslesen kann!

2.
Dann werde ich zeigen, wie man diese Daten weiter verarbeiten kann!

3.
...und dann wird jeder der das hier gelesen hat das Ganz einfach an seine bedürfnisse anpassen können und weiter verwenden können!

Soo... jetzt nicht erschrecken-.. hört sich viel an.. ist es aber nicht.. zumindest ist es nicht so schwierig wie man vielleicht glaubt!

warum ich das mache?
weil es sinnlos ist scripts zu kopieren die man nicht versteht!(wie geschehen.. da war für etwas vergleichbares nen script mit ca 400 zeilen notwendig...)

Daher erkläre ich es jetzt noch ml in Ruhe und dann kann jeder selbst sein erworbenes Wissen immer wieder auf Probleme in der Zukunft anwenden was XML basics betrifft und man ist gerüßtet (oder zumindest kann man auf eigenen Beinen stehen) wenns um das arbeiten mit XML geht!!!

Aber genug von dem gesültze!
wollen wir loslegen....

Bis gleich!
ich mach mich jetzt mal ran ein Beispiel zu nr.1 zu bauen!

mfG,
Robert
pape ist offline   Mit Zitat antworten
Alt 14-08-2004, 00:08   #2 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
ich hoffe ich mache keine Fehler!
wenn irgendjemand was entdeckt dann sagt mir bitte bescheid!


1. Die XML-file

Das hier ist eine typische XML file:
(die files werden mit der Endung*.xml abgespeichert"
z.b. xmlfile.xml)
Code:
<?xml version='1.0' encoding='utf-8'?>
  <knoten>
    <kindknoten name="Element eins" beschreibung="Beschreibung 1" />
    <kindknoten name="Element zwei" beschreibung="Beschreibung 2" />
    <kindknoten name="Element drei" beschreibung="Beschreibung 3" />
  </knoten>
die erste zeile gibt an, dass nun ein XML code folgt (gibt die Xml-version und das encoding an, wie man sieht) und ist zunächst nicht weiter wichtig.

Diese Zeile brauchst du grundsätzlich nur zu kopieren und an den Anfang der Xml-datei zu schreiben!

als nächstes Folgt der erste Knoten (childNode - später mehr dazu)!
da muss nicht knoten stehen!
da kann auch z.b. <Songlist> oder <Images> stehen!
man sollte hier hinschrieben, was man halt benutzt!

dann folgen die kindknoten (auch childNodes - später mehr dazu).
Diese, wie man sieht, liegen in dem ersten childNode
diese beinhalten jeweils den kindknoten (childnode) namen und dann weiter variablen: indem beispiel name und beschreibung!
(nicht verwirren lassen! - name einmal in der XML file des Child nodes und einmal name als variable die wir später auslesen werden!)

Die Variablen werden alle als String behandelt - also müssen sie alle in "" stehen! (auch nummenr z.b.: <meinElement nummer="10" />)
die eintzelnen ChildNodes werden am ende auch direkt wieder geschlossen mit />

man sollte hier zunächst keine Sonderzeichen wie ~"§$%&/()=? benutzen (diese könnten aber noch funktionieren - viel schlimmer sind ä,ü,ö...) da so etwas öfters Probleme macht!
(das ist aber ein anderes Thema und würde jetzt den Rahmen sprengen!)
zumerken ist für den Anfang nur, dass man es vermeiden sollte Sonderzeichen zu verwenden um unnötige Fehler zu vermeiden!

am Ende wird der erste childNode (<knoten>) wieder geschlossen (</knoten>

das ist HTML sehr ähnlich!

die daten aus dem XML-file sind also so angeordnet:

childNode
-- childNode
-- childNode
-- childNode
-- childNode

und eines der eigentlichen Elemente wäre dann anzusprechen mit
childNode[0].childNode[nr]
diese Verhalten sich glücklicher Weise wie arrays und beginnen mit der Nummer 0!
daher wäre das erste Element so anzusprechen:
childNodes[0].childNodes[0]
und z.b. das letzte
childNodes[0].childNodes[3]

diese ChildNodes besitzen Attribute in denen nun unsere Variablen stehen!
die attribute bei uns heißen name und beschreibung!

so viel zum Aufbau der XML-File da ist mehr möglich aber dieses XML-Wissen reicht erstmal schon um das ein oder andere Problem zu bewältigen)!

weiter geht es jetzt gleich mit dem Auslesen Der Xml-file mit Flash!

bis gleich,
Robert

p.s. hier gibbet noch kleine bsp datei ..ist ja noch nix großartig passiert...

Geändert von pape (14-08-2004 um 00:09 Uhr)
pape ist offline   Mit Zitat antworten
Alt 14-08-2004, 00:12   #3 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
2.XML-file auslesen mit Flash

zunächst müsen wir ein neues XML-Objekt erstellen worin die ganzen XML-functionen ablaufen werden!

das machen wir mit
ActionScript:
  1. var XMLdaten = New XML();//erstellt ein neues XML Objekt
  2.  
dann teilen wir dem Objekt mit, dass es die leerzeichen(spaces) in der file ignorieren soll (sonst hätten wir alles aneineander schreiben müssen->unübersichtlich)
ActionScript:
  1. XMLdaten.ignoreWhite=true; // ignoriert die leerRäume (spaces) inder XML-file
  2.  
dann müssen wir die Datei in das objekt laden:
ActionScript:
  1. XMLdaten.load("XMLfile.xml");//lädt die XML-file
  2.  
hier gibt man natürlich die Datei an, die man vorher abgespeichert hat!

wenn nun die Daten geladen werden müssen wir darauf reagieren um sie auszulesen:
ActionScript:
  1. XMLdaten.onLoad = function(success) {...}//wenn die Datei geladen wird
  2. //das success benötigen wir um zu prüfen ob das laden erfolgreich war!
  3.  
dann erstellen wir uns zwei arrays (so viele wie wir in der XML fiel attribute für die childNodes haben)
in diese schrieben wir gleich die ausgelesenen Daten!
ActionScript:
  1. XMLdaten_namen = []; // Erstellt ein neues Array namens XMLdaten_namen
  2. XMLdaten_beschreibung = []; // Erstellt ein neues Array namens XMLdaten_beschreibung
  3.  
nun gucken wir ob das laden erfolgreich war
ActionScript:
  1. if (success) { ...}//wenn das laden der File erfolgreich war
  2.  
wenn es das war dann gehen wir alle elemente der Datei in einer for schleife durch:
ActionScript:
  1. for (var i=0; i<XMLdaten.firstChild.childNodes.length; i++) {...}
  2. //damit man nicht verwirrt ist:
  3. //XMLdaten.firstChild.childNodes == XMLdaten.childNodes[0].childNodes
  4. //erstes element in der XML file soll ausgelesen werden.. und zwar alle
  5. //elementedie sich in dem ersten childNode befinden (childNodes[0])
  6. //diesen bezeichnet man auch als firstChild
  7. //was auch geht firstChild.firstChild.firstChild...usw.. das können wir hier aber
  8. //nicht gebrauchen!
  9. //.length gibt die Anzahl an Elementen im childNode wieder!
  10.  
nun beginnt das eigentliche Auslesen!

mit
ActionScript:
  1. XMLdaten.firstChild.childNodes[i]
greifen wir auf das (in der for schleife) aktuelle Element zu!
(noch mal an den aufbau der file erinnern u ggf. noch mal oben nachlesen!)

um ein attribut eines Elements auszulesen benötigen wir die eigenschaft ".attributes."
wir lesen das Attribut aus und schreiben es uns in unser Array!
ActionScript:
  1. XMLdaten_namen[i] = XMLdaten.firstChild.childNodes[i].attributes.name; //namen Attribut
  2. //des aktuellen Elements auslesen und ins XMLdaten_namen
  3. //array schreiben
  4. XMLdaten.firstChild.childNodes[i].attributes.beschreibung; //beschreibungs Attribut
  5. //des aktuellen Elements auslesen und ins XMLdaten_beschreibung
  6. //array schreiben
  7.  
das machen wir solange bis wir unser Array mit allen daten gefüllt haben (dank der for-schleife)

wenn das alles geschehen ist sind die daten bereit und wir gehen weiter im Film um dann die Daten zu verarbeiten/weiter zu verwenden
(man könnte das ganze auch in einer Frame machen! aber ich denke es ist so erst einmal leichter zu überblicken wann was geschieht)

ActionScript:
  1. //das auslesen ist nun abgeschlossen, da die for schleife beendet ist!
  2. //also gehen wir weiter im Film zum verarbeiten der XML-dateien
  3. gotoAndStop(2);


Das vollständige "auslese" script sieht demnach so aus:
ActionScript:
  1. stop();//in Frame (1) stehen bleiben
  2. var XMLdaten = new XML();//erstellt ein neues XML Objekt
  3. XMLdaten.ignoreWhite=true; // ignoriert die leerRäume (spaces) inder XML-file
  4. XMLdaten.load("XMLfile.xml");//lädt die XML-file
  5. XMLdaten.onLoad = function(success) {//wenn die Datei geladen wird
  6.     XMLdaten_namen = []; // Erstellt ein neues Array namens XMLdaten_namen,
  7.                         //hier speichern wir die Variablen wo name="..."steht
  8.     XMLdaten_beschreibung = []; // Erstellt ein neues Array namens XMLdaten_beschreibung,
  9.                         //hier speichern wir die Variablen wo beschreibung="..."steht
  10.     if (success) { //wenn das laden der File erfolgreich war
  11.         for (var i=0; i<XMLdaten.firstChild.childNodes.length; i++) {//for schleife-> für
  12.                                     //alle elemente die firstChild (childNode[0]) besitzt...
  13.             XMLdaten_namen[i] = XMLdaten.firstChild.childNodes[i].attributes.name; //namen Attribut
  14.                                         //des aktuellen Elements auslesen und ins XMLdaten_namen
  15.                                         //array schreiben
  16.             XMLdaten_beschreibung[i] = XMLdaten.firstChild.childNodes[i].attributes.beschreibung;
  17.                       //beschreibungs Attribut
  18.                       //des aktuellen Elements auslesen und ins XMLdaten_beschreibung
  19.                       //array schreiben
  20.         }
  21.         //das auslesen ist nun abgeschlossen, da die for schleife beendet ist!
  22.         //also gehen wir weiter im Film zum verarbeiten der XML-dateien
  23.         gotoAndStop(2);
  24.     }
  25. }

bis später!

mit freundlichen Grüßen,
Robert

P.s:
bei Fragen natürlich einfach fragen!
ich erkläre nicht verstandenes gerne noch mal genauer!

p.p.s danke @ salzar für weiter unten von ihm genannte bessere Möglichkeit die daten auszulesen bzw. das script etwas zu optimieren! thx!
habe die dateien und die scripts aktuallisiert!
Angehängte Dateien
Dateityp: zip xmlbsp_schritt2.zip (2,8 KB, 2289x aufgerufen)

Geändert von shorty (08-06-2006 um 22:29 Uhr)
pape ist offline   Mit Zitat antworten
Alt 14-08-2004, 00:14   #4 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
3. Das verarbeiten der geladenen XML-Daten in Flash

...nun können wir ganz bequem auf unsere eben erstellten Arrays (XMLdaten_namen und XMLdaten_beschreibung) zugreifen wie auf jedes andere Array auch:

das:
ActionScript:
  1. trace(XMLdaten_namen[0]);
würde z.b. "Element eins" ausgeben!
Zum vergleich mal in die XMLfile gucken:
dort steht beim namen Attribut des ersten Elements name="Element eins" !

das:
ActionScript:
  1. trace(XMLdaten_namen[1]);
würde z.b. "Element zwei" ausgeben!
Zum vergleich mal in die XMLfile gucken:
dort steht beim namen Attribut des zweiten Elements name="Element zwei" !

...usw...

genau so funktioniert es mit dem beschreibungs array:
ActionScript:
  1. trace(XMLdaten_beschreibung[1]);
ausgabe : Beschreibung 2

wie wir sehen hat die Übergabe der Daten funktioniert!

um ganz sicher zugehen, ob auch wirklich alle Element übergeben worden sind können wir uns auch direkt das ganze Array aus-tracen:
ActionScript:
  1. trace(XMLdaten_namen);
  2. //ausgabe in unserem beispiel:
  3. //Element eins,Element zwei,Element drei
  4.  
genauso das andere Array mit den beschreibungs-attributen:
ActionScript:
  1. trace(XMLdaten_beschreibung);
  2. //ausgabe in unserem beispiel:
  3. //Beschreibung 1,Beschreibung 2,Beschreibung 3
  4.  

es hat also alles wunderbar geklappt!

das wars auch eigentlich schon!

Was wir nun mit den Werten machen ist egal!
aber so wie beschrieben können wir auf sie zugreifen!
die Fla's findet ihr im Anhang!

vielleicht ein Beispiel zum verwenden der Daten zur Veranschaulichung des Vorgangs:
angenommen wir möchten dynamisch viele textfelder erzeugen und in sie auch dynamischen text schreiben...
->XML macht es möglich:

in die XML File schreiben wir:
(Filename: textfelder_daten.xml)
Code:
<?xml version='1.0' encoding='utf-8'?>
  <felder>
    <feld anzeige="Textfeld eins"/>
    <feld anzeige="Textfeld zwei"/>
    <feld anzeige="Textfeld drei"/>
    <feld anzeige="Textfeld vier"/>
    <feld anzeige="Textfeld fuenf"/>
    <feld anzeige="Textfeld sechs"/>
  </felder>
wir erstellen einen neuen Flashfilm und schreiben in das erste Bild die uns nun schon bekannte auslese Methode der XML-file:
ActionScript:
  1. stop();
  2. var XMLdaten = new XML();
  3. XMLdaten.ignoreWhite=true;
  4. XMLdaten.load("textfelder_daten.xml");
  5. XMLdaten.onLoad = function(success) {
  6.     anzahl = XMLdaten.firstChild.childNodes.length; //liest die anzahl der elemente aus!
  7.     anz = []; //neues array
  8.     for (var i=0; i<anzahl; i++) {
  9.             anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen
  10.     }
  11.     gotoAndStop(2);
  12. }
in das zweite Bild kommt das:
ActionScript:
  1. stop();//film stehen lassen (frame 2);
  2. for (var i=0; i<anzahl; i++) {//wieder alle elemente durch gehen
  3.     // neues textfeld auf _root
  4.     //das i*20 dient dazu die Textfelder unter einander zu positionieren!
  5.     _root.createTextField("teext"+i, i, 10, i*20, 0, 0);
  6.     // autoSize = true wegen dynaisch langem Inhalt
  7.     _root["teext"+i].autoSize = true;
  8.     //text aus array dem entsprechenden Textfeld zuweisen
  9.     _root["teext"+i].text = anz[i];
  10. }

So es war einigermaßen verständlich, oder?!

wenn es Fragen gibt, dann fragt!
Es gibt keine dummen Fragen!
...und wie gesagt, ich erkläre nicht verstandenes gerne noch mal genauer!


Ich hoffe es haben sich keine Fehler eingeschlichen!
Ich habe alles getested und daher sollte es funktionieren!
Aber es kann immer schon mal sein, dass man sich hier dann doch noch mal vertippt!
wenn jemand Fehler findet oder Verbesserungsvorschläge hat, dann bitte kurz bescheidgeben, damit ich das ändern kann!

nochmal viel Spaß/Erfolg damit!

würde mich über kommentare und konstruktive Kritik/verbesserungsvorschläge usw. freuen!

greetz,
Robert


P.s:
Anhang
Beispiel Fla'S:
(1) beispiel - fla aus meinem Tutorial.
(2) beispiel fla - Anwendungs-Beispiel (dynamische Textfelder erzeugen).

und nen special @ wurscht:
(3) beispiel fla - Anwendungs-Beispiel (RollOver bei Buttons in Verbindung mit TextFelder).
Angehängte Dateien
Dateityp: zip xmlbsp_schritt3.zip (3,2 KB, 1934x aufgerufen)
Dateityp: zip anwendungs_bsp.zip (2,7 KB, 2511x aufgerufen)
Dateityp: zip onRollOver_Xml_Beispiel.zip (3,7 KB, 2095x aufgerufen)

Geändert von shorty (08-06-2006 um 22:31 Uhr)
pape ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:19   #5 (Permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 10.125
Thumbs up

servus pape,
sehr fein! respekt... schönes tut! alles soweit sehr gut erklärt...
weiter so!...

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da!
salazar ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:29   #6 (Permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.620
Wow ... danke.

Das klingt sehr gut, ausführlich und umfangreich ... hab's mal im Tut-Board verlinkt.
XML und Flash

Danke und Gruß
Rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:30   #7 (Permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 10.125
gucke es mir grad nochmal genauer an... da ist mir aufgefallen das du diese passage hier auch eleganter lösen kannst:
PHP-Code:
stop(); 
var 
XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true
XMLdaten.load("textfelder_daten.xml"); 
XMLdaten.onLoad = function(success) { 
    
fertig false
    
anzahl XMLdaten.firstChild.childNodes.length//liest die anzahl der elemente aus! 
    
anz = []; //neues array 
    
for (var i=0i<anzahli++) { 
            
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen 
    

        
fertig true


this.onEnterFrame = function () { 
    if (
fertig) { 
        
delete fertig
        
delete this.onEnterFrame
        
this.gotoAndStop(2); 
    } 

nämlich so. aber vorsicht. im prinzip gehts so, aber hatte noch keine zeit es zu testen... so kannste aber auf die onEnterFrame verzichten. wenns nicht funzt ist es bestimmt nur nen kleiner syntax fehler..
PHP-Code:
stop(); 

var 
XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true
XMLdaten.load("textfelder_daten.xml"); 
XMLdaten.onLoad = function(success) { 
    if(
success){
        
anzahl XMLdaten.firstChild.childNodes.length//liest die anzahl der elemente aus! 
        
anz = []; //neues array 
        
for (var i=0i<anzahli++) { 
            
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen 
            
if(>= anzahl){
                
this.gotoAndStop(2); 
            }
        } 
    }

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da!
salazar ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:31   #8 (Permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 10.125
oder so:
PHP-Code:
stop(); 

var 
XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true
XMLdaten.load("textfelder_daten.xml"); 
XMLdaten.onLoad = function(success) { 
    if(
success){
        
anzahl XMLdaten.firstChild.childNodes.length//liest die anzahl der elemente aus! 
        
anz = []; //neues array 
        
for (var i=0i<anzahli++) { 
            
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen 
        

        
this.gotoAndStop(2); 
    }

probiers mal aus... cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da!
salazar ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:42   #9 (Permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 10.125
scripten macht schon spaß! bin jetzt auch grad fleißig dabei.. hey pape. nicht böse gemeint oder so. super arbeit, aber du meintest ja wenn jemand noch ideen hat... ich tobe mich einfach mal aus... muß mich ablenken..

du kannst doch eigentlich auch komplett auf das 2 frame system im tut part 3 verichten...

PHP-Code:
stop(); 

var 
XMLdaten = new XML(); 
XMLdaten.ignoreWhite=true
XMLdaten.load("textfelder_daten.xml"); 
XMLdaten.onLoad = function(success) { 
    if(
success){
        
anzahl XMLdaten.firstChild.childNodes.length//liest die anzahl der elemente aus! 
        
anz = []; //neues array 
        
for (var i=0i<anzahli++) { 
            
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen 
            
_root.createTextField("teext"+ii10i*2000); 
            
_root["teext"+i].autoSize true
           
_root["teext"+i].text anz[i]; 
        }
    }

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da!

Geändert von salazar (14-08-2004 um 02:15 Uhr)
salazar ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:42   #10 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
@rena : thx!
@salzar: wie recht du hast!!!! oh man.... das ich da nicht sleber drauf gekommen bin.... grml....

soviel zum thema optimieren und performance freundlich... ich ändere es oben!

btw: es geht mit gotoAndStop(2);
nicht mit this.gotoAndStop(2).. this bezieht sich da auf das XML Objekt

aber es könnte u.U probleme geben, wenn man einfach gotoAndStop(2); schreibt oder?...

grz
pape ist offline   Mit Zitat antworten
Alt 14-08-2004, 01:59   #11 (Permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 10.125
vergiss gotoAndStop(2);
cya, sal

ps
ist salzar nicht mexikanisch?
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da!
salazar ist offline   Mit Zitat antworten
Alt 14-08-2004, 02:16   #12 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
aber dann bleibt wohl nichts anderes übrig, als
sowas:
ActionScript:
  1. tl = _root
  2. //...
  3. tl.gotoAndStop("weiterverarbeiten");
hmm... des ist nich gut...

Zitat:
du kannst doch eigentlich auch komplett auf das 2 frame system im tut part 3 verichten...
ne...also könnte schon(wäre auch sehr sinnvoll!!-- oder zumindest mit etwas wie gotoAndStop("bilmakierung"); statt Frame nr...)
aber dann wird es für anfänger denke ich schnell unverständlich...
Edit:
zumal hier das erste mal was mit den daten getan wird!
..da glaube ich solte man das script zunächst isoliert sehen um es besser zuverstehen..
oder was meinst du?

mal schaun.. vielleicht gibt es ja noch nen weiteren part...
dann werde ich es dort auf jeden Fall so machen!

Dass das nicht böse gemeint ist weiß ich übrigens

bin ja froh wenn sowas gesagt wird, weil ich dann was dabei lerne!
also danke!

grz

Geändert von pape (14-08-2004 um 02:18 Uhr)
pape ist offline   Mit Zitat antworten
Alt 14-08-2004, 11:36   #13 (Permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 13
Erstmal danke an euch 2, prima arbeit

Ich hätte da noch ein zwei Fragen, ich glaube es liegt daran das ich das mit den childNodes noch nicht so ganz verstanden hab.

Ich mach es am besten mal an einem konkreten Beispiel fest was ich mir ausgedacht habe, vielleicht ist ja schon der Aufbau von der XML datei eher ungünstig...

So sieht die XML datei aus:

HTML-Code:
<?xml version='1.0' encoding='utf-8' ?>
<musikliste>
	<cdtitel name="CD1" ordner="sound/CD1">
		<songtitel name="Song1" beschreibung="von dem und dem" />
		<songtitel name="Song2" beschreibung="von diesem und jenem" />
	</cdtitel>
</musikliste> 
Also sie soll hier zB cdtitel und cdsongs beinhalten.
Jetzt hätte das ganze am liebsten in einem Assoziativen Array, aber ich bekomms grad nich so hin die Schleife umzubauen...
das array sollte dann so aussehen: musikArray[cdtitel][songtitel]
is das möglich?

Geändert von weltraumpfleger (14-08-2004 um 12:13 Uhr)
weltraumpfleger ist offline   Mit Zitat antworten
Alt 14-08-2004, 15:52   #14 (Permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
machstes halt so:
ActionScript:
  1. anzahlCDs = XMLdaten.firstChild.childNodes.length;
  2. anzahlCDtitel = []; //neues Array
  3. for (var i=0; i<anzahlCDs; i++) {//alle CDs durchgehen
  4.     //länge der songtitel Ojekte der jeweiligen CD auslesen und ins array schreiben
  5.     anzahlCDtitel[i] = XMLdaten.firstChild.childNodes[i].childNodes.length;
  6. }
  7. namen = [];
  8. beschreibungen = [];
  9. for (var i=0; i<anzahlCDs; i++) {//für jede CD
  10.     namen[i] =[];
  11.     beschreibungen[i] = [];
  12.     for (var j=0; j<anzahlCDtitel[i]; j++) {//für alle Songs der jeweiligen CD
  13.         //auslesen
  14.         namen[i][j] = XMLdaten.firstChild.childNodes[i].childNodes[j].attributes.name;
  15.         beschreibungen[i][j] = XMLdaten.firstChild.childNodes[i].childNodes[j].attributes.beschreibung;
  16.     }
  17. }
  18.  
  19. //zugriff aufs z.b. namen array
  20. trace(namen[cd][titel]);
habs nicht getestet. aber wie es funktioniert sollte jetzt klar sein...und eigentlich sollte es auch funktinoieren.. habe aber grad keine zeit zum testen..

grz
Robert

Geändert von pape (14-08-2004 um 15:56 Uhr)
pape ist offline   Mit Zitat antworten
Alt 15-08-2004, 10:44   #15 (Permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Zitat:
Zitat von pape
aber dann bleibt wohl nichts anderes übrig, als
sowas:
ActionScript:
  1. tl = _root
  2. //...
  3. tl.gotoAndStop("weiterverarbeiten");
hmm... des ist nich gut...

was willst du in einem anderen frame als frame 1 ?
leg die nachfolgenden aktionen in eine funktion und ruf diese im onload auf.
warrantmaster 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 07:06 Uhr.

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


Copyright ©1999 – 2010 Marc Thiele und Sascha Wolter.