Actionscript:
  1. package info.sunagimo.loader{
  2. import flash.events.EventDispatcher;
  3. import flash.net.URLLoader;
  4. import flash.net.URLLoaderDataFormat;
  5. import flash.net.URLRequest;
  6. import flash.system.System;
  7. import flash.events.Event;
  8.  
  9. public class XMLLoader extends EventDispatcher  {
  10. public static const LOAD_COMPLETE:String = "load_complete";
  11.  
  12. private var _xmlLoader:URLLoader;
  13. private var _xml:XML;
  14. private var _isUnicode:Boolean = true;
  15. //コンストラクタ
  16. function XMLLoader(url:String, isUnicode:Boolean = true) {
  17. _isUnicode = isUnicode;
  18. //URLLoader作成
  19. _xmlLoader = new URLLoader();
  20. _xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
  21. _xmlLoader.addEventListener(Event.COMPLETE, _onXMLloaded);
  22. //URL
  23. var urlReq:URLRequest = new URLRequest(url);
  24. //Unicode以外ならばtrue
  25. System.useCodePage = _isUnicode;
  26. //読み込み開始
  27. //trace("------>"+url+" load start");
  28. _xmlLoader.load(urlReq);
  29. }
  30. //読み込み完了
  31. private function _onXMLloaded(event:Event):void {
  32. try {
  33. //XMLオブジェクトに変換する
  34. _xml = new XML(_xmlLoader.data);
  35. //カスタムイベントを配信する
  36. dispatchEvent(new Event(LOAD_COMPLETE));
  37. } catch (err:TypeError) {
  38. trace(err.message);
  39. }
  40. }
  41. //XMLオブジェクトを返す(他のクラスからのアクセスに対応)
  42. public function get xml():XML{
  43. return _xml;
  44. }
  45. }
  46. }



XMLの内容
XML:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <DATA>
  3. <baseData>
  4. <arg id="pageWidth">2030</arg>
  5. <arg id="pageHeight">2700</arg>
  6. <arg id="pageDirection">LEFT</arg>
  7. <arg id="bgColor">0xFFFFEE</arg>
  8. </baseData>
  9. <pages>
  10. <page>
  11. <src>books/as3dsignptn/p_004.jpg</src>
  12. <bgColor>0xEECCCC</bgColor>
  13. </page>
  14. <page>
  15. <src>books/as3dsignptn/p_005.jpg</src>
  16. <bgColor>0xEECCCC</bgColor>
  17. </page>
  18. <page>
  19. <src>books/as3dsignptn/p_006.jpg</src>
  20. <bgColor>0xEECCCC</bgColor>
  21. </page>
  22. </pages>
  23. </DATA>


読み込み側
Actionscript:
  1. package {
  2. import flash.display.Sprite;
  3. import flash.events.*;
  4. import info.sunagimo.loader.*;
  5. public class BookViewer extends Sprite{
  6. private var _set:XML;
  7. private var _setLoader:XMLLoader;
  8. private var _pageContents:Array = new Array();
  9. private var _parameters:Array = new Array();
  10. public function BookViewer(){
  11. _setLoader = new XMLLoader("xml/as3dsignptn.xml");
  12. _setLoader.addEventListener(XMLLoader.LOAD_COMPLETE,_onSettingLoaded);
  13. }
  14. private function _onSettingLoaded(e:Event):void{
  15. _set = _setLoader.xml;
  16. trace(this+"pageWidth:"+_set.baseData.arg.(@id=="pageWidth"));
  17. for(var i:int=0;i<_set.baseData.arg.length();i++){
  18. _parameters[_set.baseData.arg[i].@id] = _set.baseData.arg[i];
  19. trace(this+_set.baseData.arg[i]);
  20. trace(this+_set.baseData.arg[i].@id);
  21. }
  22. for(i=0;i<_set.pages.page.length();i++){
  23. trace(this+_set.pages.page[i].src);
  24. trace(this+_set.pages.page[i].bgColor);
  25. }
  26. }
  27. }
  28. }