| |||||||
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) |
| Neuer User Registriert seit: Oct 2004
Beiträge: 19
| XML Variablen Speichern...
Hab mir nochmal die ActionScriptReferenz durchgelesen und hab's jetzt soweit die XML Datei Fehlerfrei auslesen zu können ;-) So, das der Quelltext: on (release) { doc = new XML(); doc.ignoreWhite = true; doc.load("testxml.xml"); doc.onLoad = function (ok) { if (ok) {xmltext = doc.childNodes[2].childNodes[1].attributes.name}}; } ich hätte da allerdings noch ne Frage ;-) Denn das ganze funzt zwar, aber ich weiss nich genau warum *gg* Also, doc = new XML(); erstellt ja erstmal ne neue XML Datei oder sagt das Flash einfach nur das doc jetzt ne XML "Datenbank" beinhalen soll?? doc.ignoreWhite = true; ist klar... doc.load("test.xml"); lädt die test.xml datei in doc rein... Ist doc denn eine eigene xml datei, ne datenbank in die eine xml reingelesen wird oder einfach nur ne variable in der die werte der xml datei gespeichert werden?? So, und das bringt mich am meisten zum nachdenken : doc.onLoad = function (ok) { if (ok) {xmltext = doc.childNodes[2].childNodes[1].attributes.name}}; doc.onLoad soll heissen sobald was in doc reingeladen wird? doc.onLoad = function (ok) nach dem = muss doch normalerweise in Flash immer nen Operator oder so folgen, bzw. ne Variable die mit was anderem gleichgesetzt wird, warum funktioniert das denn, das dort ne Funktion steht? das (ok) bringt vermutlich, das die funktion ok heisst??? und if (ok) das wenn die funktion ok aufgerufen wird der if kram ausgeführt wird?? Also Praktisch: function (ok) ---> funktion namens ok wird erstellt if(ok){....} ---> wenn funktion ok aufgerufen wird? Das wars aber noch nich *gg*, gibt noch mehr fragen ^^ function (ok) { if (ok) {xmltext = doc.childNodes[2].childNodes[1].attributes.name}} function (ok) { if (ok) { xmltext = doc.childNodes[2].childNodes[1].attributes.name } } So, ich verstehe nicht warum das ganze so funktioniert, weil eigentlich sind funktionien doch so aufgebaut: function ok() { if (irgendwas == oder != oder was auch immer was anderem) { dann tu dies hier... } } Ich würd mich freuen wenn das einer hier mal erklären würde, danke! ( hat mich nämlich gewundert das mein Flash 5 das so annimmt ohne zu meckern ^^ ) das ist mehr oder weniger klar: xmltext = doc.childNodes[2].childNodes[1].attributes.name Das ist ja meine XML Datei: <?xml version="1.0" ?> <funktion name="datenversorgung" stand="14-09-2001"> <beschreibung name="beschreibungstag"> Das hier ist der Text der beschreibung </beschreibung> </funktion> <funktion> ist childNodes[1] ?!! <?xml version="1.0" ?> ist childNodes[0] ?!! Ich dachte das xml version.... sagt nur das jetzt nen XML Code folgt, und wenn das so ist, dann müsste doch <funktion> childNodes[0] sein, <funktion> ist aber merkwürdigerweise (funktioniert so und ist auch so getestet von mir!) childNodes[1] Oder ist das bei dem "veraltetem" Flash 5 so, dass das nicht bei childNodes[0] losgeht?? Weil unter <funktion> ist <beschreibung> ja auch childNodes[1] und nich wie ich dachte das es sein muss [0]... Naja, ich hoffe einer weiss ne antwort darauf.. danke malwieder schon im vorraus ;-) gruß Daniel PS: Da wär noch was, wenn wir schonmal dabei sind *gg* Ich hab jetzt ja die xml datei, und dann würd ich auch gern die datei wieder speichern, "logischerweise", weil die bringt mir ja nich viel, variablen nur zum einlesen, dann könnt ich mir ja auch ne .txt oder so machen ;-) Ich will ja auch die XML wieder speichern, mit geändertem Wert, dazu hab ich mir folgendes einfallen lassen: on (release) { testElement = doc.createElement("test"); testElement.attributes.apfel = tinput; doc.appendChild(testElement); doc.send("testxml.xml", "_self"); } testElement soll das neue element sein, was erstellt wird, nen attribut namens apfel solls haben und apfel soll = tinput sein... tinput (mein "shortcut" für text input) ist nen Textfeld, welches natürlich als Textfeld eingestellt ist, ich habs schon getestet... Funktioniert teilweise... testElement ---> wird erstellt testElement ---> bekommt nen attribut namens apfel attribut apfel ---> bekommt das, was man ins Textfeld eingeben hat als Wert Also, soweit funktionierts, unter "Variablen auflisten" kann ich es mir auch anschaun und er speichert dann auch echt in der XML Datei nen neuen Knoten und da gibts dann auch nen attribut apfel und den wert den man eingetippt hat. Was leider nicht funktioniert, ist das senden... Ich hab mir da 2 Sachen überlegt... Entweder funktioniert das nicht, weil XML ja eigentlich ne Serverbedingte Sache ist, und ich das hier bei mir zuhause auf meinem normalen Computer in C:\XML\test2 drin habe, und er vielleicht nicht von C:\XML\test2\flashtest.fla bzw. .swf nach C:\XML\test2\testxml.xml speichern kann, weils einfach nen PC is und nich nen Server??? oder das ich malwieder was falsch gescriptet hab Ok, also, könnt mir wer sagen, ob entweder der quelltext doc.send("testxml.xml", "_self"); verkehrt ist, oder ob das mit der "Server-Vermutung" stimmt?? nochmals danke und gruß ;-) Daniel |
| | |
| | #2 (permalink) |
| ... Registriert seit: Nov 2001
Beiträge: 1.227
|
Hallo darealneo, dat is ein bischen viel verlangt ! Lad Dir doch mal aus dem Web ein paar PDFs über XML runter, schau in der Flashhilfe mal unter XML-Klasse oder hier: http://www.macromedia.com/support/fl...ionary827.html onLoad ist keine Funktion sondern eine Ereignisprozedur, die Eintrifft, wenn Deine Übertragung aus welchen Gründen auch immer (Fertig,Error) abgeschlossen ist. "ok" ist nicht der Name der Funktion (ist ja auch keine) sondern ein Platzhalter (Variable) für den Rückgabewert der Prozedur (true bei erfolgreicher Übertragung, false, wenn was schief ging) Man kann Funktionen folgendermaßen erstellen: function hallo(){ } oder hallo = function(){ } kommt auf selbige raus. Mit send übermittelst du Daten aus Flash an einen anderen Serverseitiges Script, welches Dir das ganze dann schreiben könnte (PHP !) Mit Flash selbst kannst du keine Dateien schreiben. XML ist keine "Serverbedingte Sache", wie Du siehst kann Flash damit arbeiten. Soweit hoffe ich Dir geholfen zu haben !! MfG flash bier
__________________ Schweig oder sprich Worte, die besser sind als Schweigen ! |
| | |
| | #3 (permalink) |
| - Registriert seit: Jan 2004
Beiträge: 3.002
|
...der then teil einer if-abfrage wird ausgegeben , wenn der ausdruck true ergibt...bei einem vergleich (z.b. if(var1==var2)) bekommt man entweder true raus (wenn die variablen übereinstimmen) oder false (wenn sie unterschiedlich sind) ..wenn jetzt aber in einer variablen ein boolischer wert gespeichert wird (also true oder false) kann man diesen auch einfach abfragen mit: if(meineVar){...} ist im endeffekt das selbe wie: if (meinevar==true){...} in deinem xml beispiel muss es nicht "ok" heißen sondern könnte auch z.b. gullaschsuppe heißen... ist ne var, in der der rückgabe wert gespeichert wird (true bei erfolgreichem laden, false bei nem fehler) man verhindert somit das ausführen der function, die sich auf das XML objekt bezieht, falls das XML Object fehler haft ist... ..usw.. lies dir am besten mal das von flash_bier schon genannte durch oder auch das Einsteiger-tutorial was ich mal geschrieben habe: [TUTORIAL] laden und verarbeiten von XML Dateien (basics) grz, pape
__________________ 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 (24-10-2004 um 13:42 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |