Actionscript:
- package info.sunagimo.loader{
- import flash.events.EventDispatcher;
- import flash.net.URLLoader;
- import flash.net.URLLoaderDataFormat;
- import flash.net.URLRequest;
- import flash.system.System;
- import flash.events.Event;
- public class XMLLoader extends EventDispatcher {
- public static const LOAD_COMPLETE:String = "load_complete";
- private var _xmlLoader:URLLoader;
- private var _xml:XML;
- private var _isUnicode:Boolean = true;
- //コンストラクタ
- function XMLLoader(url:String, isUnicode:Boolean = true) {
- _isUnicode = isUnicode;
- //URLLoader作成
- _xmlLoader = new URLLoader();
- _xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
- _xmlLoader.addEventListener(Event.COMPLETE, _onXMLloaded);
- //URL
- var urlReq:URLRequest = new URLRequest(url);
- //Unicode以外ならばtrue
- System.useCodePage = _isUnicode;
- //読み込み開始
- //trace("------>"+url+" load start");
- _xmlLoader.load(urlReq);
- }
- //読み込み完了
- private function _onXMLloaded(event:Event):void {
- try {
- //XMLオブジェクトに変換する
- _xml = new XML(_xmlLoader.data);
- //カスタムイベントを配信する
- dispatchEvent(new Event(LOAD_COMPLETE));
- } catch (err:TypeError) {
- trace(err.message);
- }
- }
- //XMLオブジェクトを返す(他のクラスからのアクセスに対応)
- public function get xml():XML{
- return _xml;
- }
- }
- }
XMLの内容
XML:
- <?xml version="1.0" encoding="UTF-8" ?>
- <DATA>
- <baseData>
- <arg id="pageWidth">2030</arg>
- <arg id="pageHeight">2700</arg>
- <arg id="pageDirection">LEFT</arg>
- <arg id="bgColor">0xFFFFEE</arg>
- </baseData>
- <pages>
- <page>
- <src>books/as3dsignptn/p_004.jpg</src>
- <bgColor>0xEECCCC</bgColor>
- </page>
- <page>
- <src>books/as3dsignptn/p_005.jpg</src>
- <bgColor>0xEECCCC</bgColor>
- </page>
- <page>
- <src>books/as3dsignptn/p_006.jpg</src>
- <bgColor>0xEECCCC</bgColor>
- </page>
- </pages>
- </DATA>
読み込み側
Actionscript:
- package {
- import flash.display.Sprite;
- import flash.events.*;
- import info.sunagimo.loader.*;
- public class BookViewer extends Sprite{
- private var _set:XML;
- private var _setLoader:XMLLoader;
- private var _pageContents:Array = new Array();
- private var _parameters:Array = new Array();
- public function BookViewer(){
- _setLoader = new XMLLoader("xml/as3dsignptn.xml");
- _setLoader.addEventListener(XMLLoader.LOAD_COMPLETE,_onSettingLoaded);
- }
- private function _onSettingLoaded(e:Event):void{
- _set = _setLoader.xml;
- trace(this+"pageWidth:"+_set.baseData.arg.(@id=="pageWidth"));
- for(var i:int=0;i<_set.baseData.arg.length();i++){
- _parameters[_set.baseData.arg[i].@id] = _set.baseData.arg[i];
- trace(this+_set.baseData.arg[i]);
- trace(this+_set.baseData.arg[i].@id);
- }
- for(i=0;i<_set.pages.page.length();i++){
- trace(this+_set.pages.page[i].src);
- trace(this+_set.pages.page[i].bgColor);
- }
- }
- }
- }