Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-04-2005, 00:41   #1 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
Post kleines AS/XML Problem

hi,

ich hab hier grad folgendes kleines problem:
ich habe mir eine kleine klasse zum parsen und behandeln einer xml datei geschrieben:
ActionScript:
  1. MapStructureContainer(XMLObject);
die konstruktorfunktion der klasse wird mit einem XMLObject aufgerufen.
in der klasse werden dann die ersten ChildNodes jeweils durch eine funktion gejagt, die dann ein objekt mit den entsprechenden daten in einem array ablegt:
ActionScript:
  1. function MapStructureContainer(XMLObj) {
  2.     this.mscXML = XMLObj;
  3.     this.mscObjects = new Array();
  4.    
  5.     if(this.mscXML.firstChild.hasChildNodes()) {
  6.         TMP = this.mscXML.firstChild.firstChild;
  7.         while(TMP != null) {
  8.             mscObjects.push(createMSCObject(TMP));
  9.             trace(TMP);
  10.             TMP = TMP.nextSibling;
  11.         }
  12.         delete TMP;
  13.     } else {
  14.         trace("XML-File is empty!");
  15.     }
  16.    
  17.     this.mscLength = mscObjects.length;
  18. }
so, das ding ist aber, dass das "trace(TMP)" mit ein undefined ausschmeisst, obwohl in der funktion "createMSCObject()" meiner meinung nach nichts an dem TMP geaendert wird.
ActionScript:
  1. createMSCObject = function(node) {
  2.     nam = node.attributes.name;
  3.     if(node.hasChildNodes() && nam!=null) {
  4.         tmp = node.firstChild;
  5.         while(tmp != null) {
  6.             ...
  7.             tmp = tmp.nextSibling;
  8.         }
  9.         trace(nam+clr+img+had+bod); // ausgabe von testwerten funktioniert!!
  10.         trace(node); // knoten ausgeben funktioniert!!
  11.         return new MSCObject(nam, clr, nks, img, had, bod);
  12.     } else {
  13.         trace("error: null");
  14.         return null;
  15.     }
  16. }
so ein miststueck
der else-fall mit dem "return null" tritt auf jeden fall nicht ein! und dei testausgaben kurz vor dem return sind auch richtig und der knoten wird auch noch einmal richtig ausgegeben.
wo kann da der fehler liegen?
ich bin ratlos.
ich waere fuer eine tipp wirklich dankbar.

gruss,
kenichi
__________________
Visit Amakiir.net - WoW Community and more!

Geändert von kenichi (30-04-2005 um 10:50 Uhr)
kenichi ist offline   Mit Zitat antworten
Alt 30-04-2005, 01:11   #2 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ich würde statt "null" (des kann der Interpreter nicht selber setzen, sondern des wird vom Proger gesetzt) auf "undefined" abfragen!!
while(TMP != undefined) {
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 30-04-2005, 01:19   #3 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
@rusty

hi, danke fuer dein flotte antwort, aber laut actionscript referenz gibt die methode "nextSibling", solange es einen solchen gibt, diesen auch zurueck. wenn es dann mal kein geschwisterlein mehr gibt, wird null zurueckgegeben.

"Property (read-only); evaluates the XML object and references the next sibling in the parent node’s child list. This method returns null if the node does not have a next sibling node."

hast du ansonsten eine idee woran es liegen koennte. soweit ich das ueberblicken kann wird das uebergene xml element nicht veraendert. es sei denn da laeuft irgendwas mit irgendwelchen referenzen durcheinander...
__________________
Visit Amakiir.net - WoW Community and more!
kenichi ist offline   Mit Zitat antworten
Alt 30-04-2005, 11:11   #4 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
leider weiss ich immer noch nicht weiter. vielleicht hat ja doch noch einer eine gute springende idee oder einen hinweis.

das ding ist naemlich, dass ich ausschliesslich "read only" methoden und eigenschaften der xml klasse nutze. deshalb verstehe ich das auch nicht, dass die variable auf einmal "null" ist...

woran liegt das nur?
__________________
Visit Amakiir.net - WoW Community and more!
kenichi ist offline   Mit Zitat antworten
Alt 30-04-2005, 16:23   #5 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
haha,

ich hab das problem geloest.
hier fehlte nur ein "this"...
ActionScript:
  1. this.mscObjects.push(this.createMSCObject(TMP));
trotzdem danke an alle.

ansonsten hab ich den code noch ein stueckchen mehr optimiert. kann sein dass das auch noch was gebracht hat...

gruss,
kenichi
__________________
Visit Amakiir.net - WoW Community and more!
kenichi 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 18:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele