AS3: Eigenschaften aus einer externen Properties-Datei auslesen

EigenschaftenBei der Programmierung von dynamische Anwendungen ist es immer sinnvoll, änderbare Texte und Variablen in externen Dateien auszulagern. Auf diese Weise kann man dynamische Anwendungen erstellen, ohne die ActionScript-Dateien zu bearbeiten oder neu kompilieren zu müssen. Weiter geht es nach dem Break…

 

Die Properties-Datei

Die Properties-Datei kann eine ganz normale Text-Datei („*.txt“) sein oder wie in Java, eine Datei mit der Endung „*.properties“ sein. ACHTUNG! Eine Java Properties-Datei ist syntaktisch nicht kompatibel mit einer ActionScript 3 Properties-Datei.

Variablen deklarieren

Man sollte Sonderzeichen, reservierte Wörter und LEERZEICHEN nicht verwenden! Die erste Variable beginnt ohne dem Trennzeichen „&“.

derName=DesireHD
&hersteller=HTC
&datum=2010
&webseite=www.htc.de
&versionen=Cupcake,Donut,Eclair,Froyo,Gingerbread,IceCream

 

Die Datei laden

Wie genau ein Loader funktioniert, habe ich bereits hier beschrieben.

var myRequest:URLRequest = new URLRequest('data.properties'); 
myRequest.method = URLRequestMethod.POST;
var myVariables:URLLoader = new URLLoader(); 
myVariables.dataFormat = URLLoaderDataFormat.VARIABLES; 
myVariables.addEventListener(Event.COMPLETE, fertig); 
		
try 
{ 
    myVariables.load(myRequest); 
}catch (error:Error)
{ 
    trace('Die Datei konnte nicht geladen werden: ' + error); 
} 

 

Die Verarbeitung

var loader:URLLoader = URLLoader(event.target); 
this.a_txt.text = loader.data.derName;
this.b_txt.text = loader.data.hersteller;
this.c_txt.text = loader.data.datum;
this.d_txt.text = loader.data.webseite;
			
var versionArray:Array =  loader.data.versionen.split(',');
this.e_txt.text = versionArray[3];

 

Das komplette Skript

package
{
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	import flash.events.Event;
	import flash.display.Sprite;
	
	public class properties extends Sprite
	{		
		public function properties()
		{						
			var myRequest:URLRequest = new URLRequest('data.properties'); 
			myRequest.method = URLRequestMethod.POST;
            var myVariables:URLLoader = new URLLoader(); 
            myVariables.dataFormat = URLLoaderDataFormat.VARIABLES; 
            myVariables.addEventListener(Event.COMPLETE, fertig); 
			
            try 
            { 
                myVariables.load(myRequest); 
            }  
            catch (error:Error) 
            { 
                trace('Die Datei konnte nicht geladen werden: ' + error); 
            } 
        } 
		
		
        private function fertig(event:Event):void 
        { 
        	var loader:URLLoader = URLLoader(event.target); 
			this.a_txt.text = loader.data.derName;
			this.b_txt.text = loader.data.hersteller;
			this.c_txt.text = loader.data.datum;
			this.d_txt.text = loader.data.webseite;
			
			var versionArray:Array =  loader.data.versionen.split(',');
			this.e_txt.text = versionArray[3];
        } 

	}
}

Doku
Properties




Kommentar verfassen