| | #1 (Permalink) |
| - 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
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II |
| | |
| | #2 (Permalink) |
| - 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>
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...
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von pape (14-08-2004 um 00:09 Uhr) |
| | |
| | #3 (Permalink) |
| - 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:
ActionScript:
ActionScript:
wenn nun die Daten geladen werden müssen wir darauf reagieren um sie auszulesen: ActionScript:
in diese schrieben wir gleich die ausgelesenen Daten! ActionScript:
ActionScript:
ActionScript:
mit ActionScript:
(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:
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:
Das vollständige "auslese" script sieht demnach so aus: ActionScript:
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!
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von shorty (08-06-2006 um 22:29 Uhr) |
| | |
| | #4 (Permalink) |
| - 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:
Zum vergleich mal in die XMLfile gucken: dort steht beim namen Attribut des ersten Elements name="Element eins" ! das: ActionScript:
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:
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:
ActionScript:
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>
ActionScript:
ActionScript:
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).
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von shorty (08-06-2006 um 22:31 Uhr) |
| | |
| | #6 (Permalink) |
| meistens harmlos 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 |
| | |
| | #7 (Permalink) |
| experience++; 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: PHP-Code:
__________________ Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! |
| | |
| | #8 (Permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 10.125
|
oder so: PHP-Code:
__________________ Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! |
| | |
| | #9 (Permalink) |
| experience++; 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:
__________________ Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Geändert von salazar (14-08-2004 um 02:15 Uhr) |
| | |
| | #10 (Permalink) |
| - 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
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II |
| | |
| | #12 (Permalink) | |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
aber dann bleibt wohl nichts anderes übrig, als sowas: ActionScript:
Zitat:
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
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von pape (14-08-2004 um 02:18 Uhr) | |
| | |
| | #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> 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) |
| | |
| | #14 (Permalink) |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
machstes halt so: ActionScript:
grz Robert
__________________ mfG, Robert Tutorials: [TUTORIAL] XML-Files in Flash einlesen+weiter verarbeiten Steuerung zwischen Zeitleisten & Movieclips [TUTORIAL] MP3-Player (+XML) [TUTORIAL] MP3-Player (+XML) Part II Geändert von pape (14-08-2004 um 15:56 Uhr) |
| | |
| | #15 (Permalink) | |
| _//\\#//\\_ Registriert seit: Jan 2003
Beiträge: 7.060
| Zitat:
was willst du in einem anderen frame als frame 1 ? leg die nachfolgenden aktionen in eine funktion und ruf diese im onload auf. | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |