txt 데이터 한줄씩 해석하기

test.txt
//주석
kioskIndex 0
wallHost 58.181.14.109 
port 8001
defaultMode 1
lowsize 60
cellNum 72
delTime 35

package com.hansune.loader {
	
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	import flash.events.IOErrorEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.Proxy;
	import flash.utils.flash_proxy;
	
	dynamic public class TXTLoader extends Proxy implements IEventDispatcher {
		
		static private var _instance:TXTLoader;
		private var _eventDispatcher:EventDispatcher;
		private var _data:Array;
		private var _isLoaded:Boolean;
		private var _urlLoader:URLLoader;
		static public const INIT:String = "init";
		
		public function get isLoaded():Boolean {
			return _isLoaded;
		}
		
		public function TXTLoader(enforcer:SingletonEnforcer){
			_eventDispatcher = new EventDispatcher();
			_isLoaded = false;
			
		}
		
		private function onFLRDataLoaded(event:Event):void {
			
			_data = new Array();
			
			var loadTxt:String = event.target.data;
			var expression:RegExp=/[\n\r\f]/g;
			var strArray:Array = loadTxt.split(expression);
			var len:int = strArray.length;
			
			for(var i:int = 0; i < len; ++i){
				
				if(strArray[i].charAt(0) != " " && strArray[i].charAt(0) != "/"){
					
					var varArray:Array = String(strArray[i]).split(" ");
					
					_data.push({name:varArray[0], value:varArray[1]});
					
				}
			}
				
			_isLoaded = true;
			dispatchEvent(new Event(TXTLoader.INIT, true, true));
		}
		
		public static function getInstance():TXTLoader {
			
			if(TXTLoader._instance == null){
				TXTLoader._instance = new TXTLoader(new SingletonEnforcer());
			}
			return TXTLoader._instance;
		}
		
		flash_proxy override function getProperty(name:*):*{
			
			for(var i:int=0;i<_data.length;++i){
				if(name == _data[i].name){
					break;
				}
			}
			
			return _data[i].value;
		}
		
		public function loadSettings(url:String):void{
			var urlRequest:URLRequest = new URLRequest(url);
			_urlLoader = new URLLoader();
			_urlLoader.addEventListener(Event.COMPLETE, onFLRDataLoaded);
			_urlLoader.addEventListener(IOErrorEvent.IO_ERROR, err);
			_urlLoader.load(urlRequest);
		}
		function err(e:IOErrorEvent){
			trace("can't find the setting file");
		}
		public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int=0, weakRef:Boolean=false):void{
			_eventDispatcher.addEventListener(type, listener, useCapture, priority, weakRef);
		}
		
		public function dispatchEvent(event:Event):Boolean{
			return _eventDispatcher.dispatchEvent(event);
		}
		
		public function hasEventListener(type:String):Boolean{
			return _eventDispatcher.hasEventListener(type);
		}
		
		public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
			_eventDispatcher.removeEventListener(type, listener, useCapture);
		}
		
		public function willTrigger(type:String):Boolean{
			return _eventDispatcher.willTrigger(type);
		}
	}
}

class SingletonEnforcer{}
저작자 표시 비영리 변경 금지