XmlLoad?[ActionScrip2.0]

XMLファイルを読み込む。

スクリプト

  • xml/file.xmlファイル
    <?xml version="1.0" encoding="utf-8" ?>
    <info>
        <status>status</status>
        <message>message</message>
        <title>Xml Load Test</title>
        <file>
            <array>
                <id>1</id>
                <path>./img/</path>
                <name>photo1_100.jpg</name>
            </array>
            <array>
                <id>2</id>
                <path>./img/</path>
                <name>photo1_100.jpg</name>
            </array>
            <array>
                <id>3</id>
                <path>./img/</path>
                <name>photo1_100.jpg</name>
            </array>
        </file>
    </info>
  • flaファイルの第1フレーム
    #include "./classes/XmlLoad.as"
    getXML();
  • classes/XmlLoad?.asファイル
    import org.casaframework.load.data.xml.XmlLoad;
    import org.casaframework.load.LoadGroup;
    import org.casaframework.load.base.BytesLoadInterface;
    import org.casaframework.math.Percent;
    import org.casaframework.util.XmlUtil;
    import org.casaframework.load.media.MediaLoad;
    
    import mx.data.binding.ObjectDumper;
    
    /**
     * XML読み込み
     *
     * @access public
     * @param
     * @return Void
     */
    function getXML():Void {
    	XMLLoad = new XmlLoad('./xml/file.xml');
    	XMLLoad.addEventObserver(this, XmlLoad.EVENT_LOAD_COMPLETE, 'onXmlLoad');
    
    	XMLLoadGroup = new LoadGroup();
    	XMLLoadGroup.addLoad(this.XMLLoad);
    
    	XMLLoad.addEventObserver(this, LoadGroup.EVENT_LOAD_PERCENT, 'onLoadPercent');
    	XMLLoad.addEventObserver(this, LoadGroup.EVENT_LOAD_ERROR, 'onXLoadError');
    	XMLLoad.addEventObserver(this, LoadGroup.EVENT_LOAD_COMPLETE, 'onLoadComplete');
    
    	XMLLoad.start();
    }
    
    /**
     * XML読み込み中
     *
     * @access private
     * @param LoadGroup sender
     * @param Percent progress
     * @return Void
     */
    function onLoadPercent(sender:LoadGroup, progress:Percent):Void {
    	trace('loading ' + Math.round(progress.getPercentage()) + '% loaded.');
    }
    
    /**
     * XML読み込みエラー時
     *
     * @access private
     * @param LoadGroup sender
     * @param BytesLoadInterface failedLoad
     * @return Void
     */
    function onXLoadError(sender:LoadGroup, failedLoad:BytesLoadInterface):Void {
    	XMLLoadGroup.removeLoad(failedLoad);
    	XMLLoadGroup.start();
    }
    
    /**
     * XML読み込み完了時
     *
     * @access private
     * @param LoadGroup sender
     * @return Void
     */
    function onLoadComplete(sender:LoadGroup):Void {
    	var file_length:Number = XmlUtil.xmlToObject(XMLLoad.getXml())['info'][0]['file'][0]['array'].length;
    
    	var fileData:Object = new Object();
    	for (var i:Number = 0; i<file_length; i++) {
    		fileData[i] = { 
    			path:XmlUtil.xmlToObject(XMLLoad.getXml())['info'][0]['file'][0]['array'][i]['path'][0]['nodeValue'],
    			name:XmlUtil.xmlToObject(XMLLoad.getXml())['info'][0]['file'][0]['array'][i]['name'][0]['nodeValue']
    		};
    	}
    
    	trace(ObjectDumper.toString(fileData));
    }

実行結果

{0: {
	name: "photo1_100.jpg", path: "./img/"}, 
	1: {name: "photo1_100.jpg", path: "./img/"}, 
	2: {name: "photo1_100.jpg", path: "./img/"}
}

ファイル

準備中。


Comment



Counter: 5397, today: 2, yesterday: 1

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:55:59 (1490d)