Antworten auf deine Fragen:
Neues Thema erstellen

XMLParser in anderer Klasse verwenden funktioniert nicht

dipo01

Noch nicht viel geschrieben

Hallo,
ich habe für ein Flash Projekt jetzt eine XML Datei erstellt, aus der ich ein paar Konfigurationen reinhole, die der Benutzer änder kann. Dazu hab ich eine eigene Klasse "XMLParser" erstellt, die ich in anderen Klassen gerne aufrufen möchte, um auf die Einstellungen zuzugreifen.
In der Klasse befindet sich eine Methode, die sich "loadXML" nennt. Dort werden die eingelesen Daten in ein array gespeichert. Innerhalb dieser Methode kann ich auch auf die Werte im Array zugreifen.
Ich dachte, ok, alles i.O., einfach ein paar getter erstellen um die Werte in andere Klassen zu bekommen, aber eben das funktioniert nicht. Ich erhalte immer, null, bzw 0,...
Auch die in der XMLParser erstellte Methode printSettings() liefert mir nur "undefined", wenn ich sie im Konstruktor aufrufe.

Hier mal der Code:
PHP:
package  {
	import flash.filesystem.File;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	
	public class XMLParser {
		
		public static const XMLFILE : String = "KaffeeDJ/config.xml";
		private var xmlLoader:URLLoader = new URLLoader();
		private var xmlData:XML;
		private var xmlFile:File;
		private var confArray:Array = new Array();
		private var test:String;

		public function XMLParser() {
			
			xmlFile = File.documentsDirectory.resolvePath(XMLFILE);
			xmlLoader.load(new URLRequest(xmlFile.url));
			xmlLoader.addEventListener(Event.COMPLETE, loadXML);
			printSettings();
		}
		
		private function initArray(event:Event) {
			trace("Do Something");
		}
		
		
		private function loadXML(e:Event):void {
			xmlData = new XML(e.target.data);
			
			for (var i:Number = 0; i < xmlData.setting.length(); i++) {
				confArray.push(xmlData.setting[i].socket.text());
				confArray.push(xmlData.setting[i].sensorPlay.text());
				confArray.push(xmlData.setting[i].sensorRec.text());
				confArray.push(xmlData.setting[i].debugMode.text());
				confArray.push(xmlData.setting[i].mp3Name.text());
			}
			
			trace("##Parser: " + confArray[4]);
		}
	
		private function printSettings():void {
			trace("* " + confArray[0]);
			trace("* " + confArray[1]);
			trace("* " + confArray[2]);
			trace("* " + confArray[3]);
			trace("* " + confArray[4]);
		}
		
		public function getSocket():int {
			return int(confArray[0]);
		}
		
		public function getSensorPlay():int {
			return int(confArray[1]);
		}
		
		public function getSensorRec():int {
			return int(confArray[2]);
		}
		
		public function getDubugMode():Boolean {
			return Boolean(confArray[3]);
		}
		
		public function getMP3Name():String {
			return confArray[4];
		}
		
		public function getTest():String {
			return test;
		}
		


	}
	
}

kann mir vielleicht jemand sagen woran das liegen könnte?!?

lg dipo
 

A

ADcosmos

Guest

AW: XMLParser in anderer Klasse verwenden funktioniert nicht

Hi,

1. Die XML-Datei zu sehen, wäre nicht schlecht ;)

2. trace doch xmlData in der loadXML-Methode, also nach der Zeile
Code:
xmlData = new XML(e.target.data);
trace(xmlData);

Die Ausgabe plus die XML-Datei würde ich dann gerne sehen.

Mfg ADcosmos
 
Zuletzt bearbeitet von einem Moderator:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben