Karte + Routenplaner

Hi,

Du kannst das ganze Objekt prima rekursiv durchlaufen lassen:
Code:
var xm = new XML();

xm.ignoreWhite = true;

xm.onLoad = function() {
  traceRekursiv(this.childNodes, "");
}

xm.load("deinedatei.xml");

function traceRekursiv(nodes, depth) {
  for (var i=0; i<nodes.length; i++) {
    if (nodes[i].nodeName) {
      trace(depth + nodes[i].nodeName + ":");
    } else {
      trace(depth + nodes[i].nodeValue);
    }
    traceRekursiv(nodes[i].childNodes, depth + "  ");
  }
}

Gruß
.
 
wow, danke für so schnelle Antwort.
Der Code gibt mir Struktur von Baum mit NULL geschrieben, allerdings verstehe ich diesen nicht komplett.

Mittlerweile habe ich folgendes
Code:
var XMLdaten:XML = new XML();
XMLdaten.ignoreWhite = true;
XMLdaten.onLoad = function(success) {
	anzahl = XMLdaten.firstChild.childNodes.length;
	//            <datei>  <root>   <knoten>  <kindknoten> <kindknoten vom kindknoten>
	anzahl2 = XMLdaten.firstChild.childNodes.childNodes.childNodes.length;

	XML_id = [];
	XML_x = [];
	XML_y = [];

	XML_a = [];
	XML_e = [];

	XML_f = [];
	trace(XMLdaten.firstChild.childNodes.nodeName);
	for (var i = 0; i<anzahl; i++) {
		//            <datei>     <root>    <knoten>     <kindknoten>   <kind attrbute>
		xml_name[i] = XMLdaten.firstChild.childNodes[i].childNodes[0].attributes.name;
		xml_besch[i] = XMLdaten.firstChild.childNodes[i].childNodes[0].attributes.beschr;
		if (XMLdaten.firstChild.childNodes.childNodes.length>1) {
			for (var x = 0; x<anzahl2; i++) {
				//xml_name2[x] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.beschr;

				XML_id[i] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.id;
				XML_x[i] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.x;
				XML_y[i] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.y;

				XML_a[i] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.a;
				XML_e[i] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.e;

				XML_f[i] = XMLdaten.firstChild.childNodes[i].childNodes[x].childNodes.attributes.f;
			}
		}
	}
};
XMLdaten.load("obj.xml");

Aber ich habe keine Ahnung ob es richtig ist, da ich es nicht schaffe mit Trace die Daten auszugeben.
 
Hi,

stimmt, mein Code gibt nur den Inhalt von Textknoten aus; Dein XML-Baum basiert (was die Inhalte betrifft) auf Attributen.

Sobald ich dazu komme, werde ich mich mal am Parsing Deiner XML-Datei versuchen; kann allerdings bis nächste Woche dauern. :-(

Gruß
.
 
Ich hab mal versucht leichtere xml struktur zu erstellen und mit einem tutorial aus anderem forum klappt es jetzt.

hier mein einfaches xml file

Code:
<?xml version='1.0' encoding='utf-8'?>
  <knoten>
    <kindknoten x="100" y="100"/>
    <kindknoten x="100" y="300"/>
    <kindknoten x="400" y="400"/>
    <kindknoten x="300" y="300"/>
    <kindknoten x="300" y="100"/>
    <kindknoten x="200" y="150"/>
  </knoten>

und hier der AS code zum einlesen
Code:
q = 0;

stop();
var XMLdaten = new XML();
XMLdaten.ignoreWhite = true;
XMLdaten.load("XMLfile.xml");
XMLdaten.onLoad = function(success) {
	XMLdaten_x = [];
	XMLdaten_y = [];
	if (success) {
		for (var i = 0; i<XMLdaten.firstChild.childNodes.length; i++) {
			XMLdaten_x[i] = XMLdaten.firstChild.childNodes[i].attributes.x;			
			XMLdaten_y[i] = XMLdaten.firstChild.childNodes[i].attributes.y;//beschreibungs Attribut
			
			q = i;
		}
		
		gotoAndStop(2);
	}
};

und gezeichnet wird in frame 2


Code:
createEmptyMovieClip("terrain",1);
BtnRead.onRelease = function() {
};

terrain.lineStyle(10,0xff00ff,100);
terrain.beginFill(0xcc00cc,100);
terrain.moveTo(XMLdaten_x[0],XMLdaten_y[0]);

for (var i = 0; i-1<q; i++) {   
	terrain.lineTo(XMLdaten_x[i],XMLdaten_y[i]);


Soweit so gut, es zeichnet und ich habe den code mittlerweile weiter modifiziert. Morgen werde ich weitere Objekt Attribute in xml zu stecken und diese weiter zu modifizieren

Doof ist, dass mein code gerade auf 2 Frames geteilt ist.
 
Hallo,
Es klappt mittlerweile mit zeichnen aus der Datei ziemlich gut :)
Wie kann man jetzt ein zoom in und out machen, sowie vielleicht pan Funktion? Es gibt zwar einige Tutorials im Internet allerdings alle für Bilder oder movieclips, das bringt mich leider nicht weiter :(

Ich habe mal meine aktuelle Datei
 

Anhänge

  • xml_draw.swf
    2 KB · Aufrufe: 107
  • xml_draw.fla
    21,5 KB · Aufrufe: 74

Neue Beiträge

Zurück