XML Loader

4月 28, 2009 · Posted in Flash · コメントは受け付けていません。 

XMLを読み込むためのカスタムイベント

ソースダウンロード

file:xmlLoaderEvent.as

Action Script
package{
	import flash.display.*;
	import flash.net.URLRequest;
	import flash.events.EventDispatcher;
	import flash.events.Event;

	import flash.system.*;
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;

	public class xmlLoaderEvent extends EventDispatcher{

		private var _url:String;
		public static  const LOAD_COMPLETE:String = "load_complete";
		private var xmlLoader:URLLoader;
		private var _XML:XML;
		/*=======================================*//**
		 * コンストラクタ
		 */
		public function xmlLoaderEvent(url:String):void{

			//URLLoader作成
			xmlLoader = new URLLoader();
			xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
			xmlLoader.addEventListener(Event.COMPLETE, onXMLloaded);
			//URL
			var urlReq:URLRequest =  new URLRequest(url);
			//Unicode以外ならばtrue
			System.useCodePage = false;
			//読み込み開始
			xmlLoader.load(urlReq);

		}

		public function onXMLloaded(event:Event):void{
			_XML = new XML(xmlLoader.data);
			dispatchEvent(new Event(LOAD_COMPLETE) );
		}

		public function get xmldata():XML{
			return this._XML;
		}

	}
}

file:xmlLoadTest.as

Action Script
package{
	import flash.display.*;
	import flash.events.Event;
	import xmlLoaderEvent;

	public class xmlLoadTest extends MovieClip{

		private var xmload:xmlLoaderEvent;
		private var _XML:XML;
		/*=======================================*//**
		 * コンストラクタ
		 */
		public function xmlLoadTest():void{

			xmload = new xmlLoaderEvent("test.xml");
   			xmload.addEventListener(xmlLoaderEvent.LOAD_COMPLETE, onXMLloaded);  

		}

		private function onXMLloaded(evt:Event):void{
			trace(xmload.xmldata);
		}

	}
}