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:
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:
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:
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:
trace(XMLdaten_namen);
//ausgabe in unserem beispiel:
//Element eins,Element zwei,Element drei
genauso das andere Array mit den beschreibungs-attributen:
ActionScript:
trace(XMLdaten_beschreibung);
//ausgabe in unserem beispiel:
//Beschreibung 1,Beschreibung 2,Beschreibung 3
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:
stop();
var XMLdaten = new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("textfelder_daten.xml");
XMLdaten.onLoad = function(success) {
anzahl = XMLdaten.firstChild.childNodes.length; //liest die anzahl der elemente aus!
anz = []; //neues array
for (var i=0; i<anzahl; i++) {
anz[i] = XMLdaten.firstChild.childNodes[i].attributes.anzeige;//auslesen
}
gotoAndStop(2);
}
in das zweite Bild kommt das:
ActionScript:
stop();//film stehen lassen (frame 2);
for (var i=0; i<anzahl; i++) {//wieder alle elemente durch gehen
// neues textfeld auf _root
//das i*20 dient dazu die Textfelder unter einander zu positionieren!
_root.createTextField("teext"+i, i, 10, i*20, 0, 0);
// autoSize = true wegen dynaisch langem Inhalt
_root["teext"+i].autoSize = true;
//text aus array dem entsprechenden Textfeld zuweisen
_root["teext"+i].text = anz[i];
}
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).