| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
Ausgangsstellung: Ihr braucht in Eurer Flash-Applikation eine ganze Menge strukturierter Daten, die ihr am Liebsten von Extern reinladen würdet ... Inzwischen habt Ihr es mit dem LoadVars probiert, doch das Verarbeiten der Variablen war Euch zu mühselig ... An XML habt Ihr Euch nicht so richtig 'drangetraut' ... auch wenn's genau die Lösung wäre. Ein Lösungsansatz: Ihr kopiert dieses Script ActionScript:
in die Hauptzeitleiste. Dann braucht Ihr noch eine XML-Datei ('oh jeh') ... nein, ist ganz einfach: Hierzu kopiert Ihr z.B. folgendes in ein ganz normales, leeres Textfile: PHP-Code: und speichert es als reinen Text im UTF-8 Format ab. Hier den Dateinamen: 'flashforum.xml' verwenden. Hierbei aufpassen, dass die Datei wirklich nur die Extension '.xml' hat und nicht etwa mit '.xml.txt' endet ! Wenn Euer .swf und das .xml in einem Ordner liegen, dann braucht Ihr in Eurer 'Flash-Entwicklungsumgebung' nur mal die Tasten: [strg]+[shift]+[enter] drücken ... den grünen Pfeil im Debugger klicken... einen kurzen Augenblick warten ... und Euch dann die Variablen in '_global' ansehen ... ![]() Was passiert da? Die XML-Nodes werden in einem Array gesammelt, das den Nodenamen als Bezeichner trägt. Nodeattribute werden als Eigenschaften den entsprechenden Arrayelementen zugeordnet. Das ganze geschieht rekursiv über alle Childnodes. Was ist zu beachten? Die Schachtelungstiefe der Childnodes darf nicht die 'Flash-Rekursionsgrenze' übersteigen. Als Nodenamen nur xml-konforme Namen vergeben. Ein Attribut dessen Bezeichner mit einem der Childnodenamen übereinstimmt wird überschrieben. Und was soll ich damit? Ich denke aus dem Beispiel lässt sich der Verwendungszweck erkennen. Die XML-Struktur könnt ihr einfach an Eure Bedürfnisse anpassen und mit Euren Daten füllen ('dat müt Ihr selba machen ...' ![]() - please report bugs - viel Spass damit pius
__________________ one out of many Geändert von pius (12-11-2003 um 10:29 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Apr 2002
Beiträge: 129
| textknoten??
Hi Pius, klasse sache! Nur was mach ich mit meinen Textknoten? Die ergeben bei mir null mit nem leeren wert. mein xml beispiel: <COMMENT id="12" type="letter">mein textinhalt</COMMENT> die attribute werden schön gelesen, "mein textinhalt" ergibt leider null. Hab grad erst angefangen,mich mit xml auseinander zusetzen... Gruß Jackie |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Apr 2002
Beiträge: 129
|
HI, das war mir schon klar ![]() nur leider kann und tut es vorkommen, das mir jemand ein xml liefert, das eben so wie mein beispiel strukturiert ist. Bisher hab ich die xml sozusagen per hand umgewandelt, aber so ein skript ist natürlich viel komfortabler. Also wenn ich noch ne idee habt, wär das super. jackie |
| | |
| | #7 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
hier nun mit der Möglichkeit in Endknoten auch Texte, also 'nodeValues' anzugeben .... ![]() ActionScript:
__________________ one out of many |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Apr 2002
Beiträge: 129
|
cool! leider bin ich jedoch noch nicht über die variablen anzeige im debugger hinaus gekommen... du schreibst ja, das das xml in ein array (oder mehrere??) gepackt wird, aber wie heißt das? wie kann ich das ansprechen , mit den variablennamen? und ist das dann ein merhfach verschachteltes array? 100 Fragen ![]() Vielleicht hast du ja noch mal lust, was dazu zu schreiben. Bis denn, viele grüße jackie |
| | |
| | #9 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
na, in '_global' hast du's doch gesehen ... oder? wie das teil heissen soll, gibst du doch beim funktionsaufruf mit ...! und ansprechen kannst du's dann über die Pfade wie sie im Debugger ersichtlich werden ... also wenn du's mit dem ersten beispiel machst: ActionScript:
dann wird der baum als: '_global.flashforum' angelegt. der erste node im xml heisst 'forum', den findest du unter: _global.flashforum.forum[0] damit also z.B. das Attribut 'name' unter: _global.flashforum.forum[0].name die bereiche sind gesammelt in einem Array das 'bereich' (wie der node selber ...) heisst, also: _global.flashforum.forum[0].bereich dort kommst du an die url über: _global.flashforum.forum[0].bereich[0].url die subbereiche sind wieder in einem array gesammelt, das ... na aber jetzt dürfte es klar sein .... nur noch folgendes: der endnode mit text: der text wird als Eigenschaft abgelegt, die mit <nodename>+'_pcdata' bezeichnet wird ... ... aber das findest du auch im debugger ...
__________________ one out of many |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Apr 2002
Beiträge: 129
|
hi pius, danke für deine antwort! jetzt funktioniertsauch mit dem tracen, hab wahrscheinlich zu früh aufgehört mit dem pfad (hat dann nur object object ausgegeben...) was ich auch beobachtet hab, das man das erst ein paar frames später ausgeben/tracen kann, sonst gibts undefined das parsen brauch wohl einige zeit und noch eins zum grundsätzlichen verständnis: die struktur bleibt gleich, sieht nur weniger abstrakt aus, weil konkreter name statt childnode. Ist das der zweck des scripts?Oder ist mir da noch was entgangen. Sorry für die blöden Fragen, hoffe, dich nicht zu sehr zu nerven.. Jackie |
| | |
| | #11 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
ja, nicht nur das parsen dauert, sondern die XML-Datei muss ja erst mal geladen werden ... nun, die struktur ... naja, es ändert sich schon ein wenig was ... z.B. sind die Attribute einfach Eigenschaften geworden ... usw. aber richtig, im wesentlichen soll die Struktur aus dem XML übernommen werden, aber eben etwas handlicher ansprechbar als mit: xml.firstChild.childNodes[i].childNodes[j].childNodes[k].attributes['name'].value ... oder so ... .. is ja nur STUFF, falls ihr es einsetzen könnt freut's mich
__________________ one out of many |
| | |
| | #12 (permalink) |
| -=|=- Registriert seit: Jul 2001 Ort: münchen
Beiträge: 776
|
habt ihr fein gemacht............ eine interessante diskussion zum thema xml in array umwandeln xml-verarbeitung in der anwendung ich wünsch euch noch viel spaß in der arbeit
__________________ www.greenzone.de_|_flash translator_|_lego jones_|_inspektor wombat online adventure |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Nov 2002
Beiträge: 53
|
hi, funzt soweit 1a das script. leider bin ich auf folgendes problem gestossen: sobald mein <nodename> einen bindestrich enthält (z.b. <title-text>) zeigt der debugger zwar alles richtig an (title-text_pcdata) aber wenn ich das array dann übers script anspreche liefert er leider nur 0 ich greife folgendermaßen auf das array zu: _global.xmldata.animation[0].title-text[0].title-text_pcdata ändere ich das ganze in _global.xmldata.animation[0].title_text[0].title_text_pcdata (natürlcih auch in der xml-datei)...geht es ohne probleme. idee woran das liegen könnte?? wär cool, wenn du mir helfen könntest! ciao |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |