Получить атрибут xml с помощью actionscript 2.0 - PullRequest
1 голос
/ 08 июня 2009

Я новичок в ActionScript 2.0, и мне хотелось бы узнать, как прочитать значение атрибута xml при выполнении итерации xml.

Пока я могу получить элементы xml, но не могу заставить эту проблему работать.

Заранее спасибо,

Brian

Ответы [ 2 ]

3 голосов
/ 09 июня 2009

ну, у любого элемента элемента есть свойство attributes ... это просто анонимные объекты, заполненные информацией ...

просто сделайте someXML.attributes.someAttribute и вы получите желаемое значение ...

аналогично, вы можете проверить эту маленькую библиотеку , которую я сделал для AS2, чтобы доставить части e4x в AS2 и упростить обработку XML ... это совсем не производство хотя уровень!

Greetz

back2dos

0 голосов
/ 08 июня 2009

Хм, вам нужен какой-то код, чтобы разгадать эту загадку; p В противном случае вы получите скучные ссылки на документацию sdk. Но я попробую, это код AS3, и я не знаю, была ли у xml серьезная переделка из AS2-> AS3. Должен сказать, что работать с xml в AS3 очень приятно.

        //current level number
        public var mCurrentLevelNumber:Number = 0;
        //read from file variables:
        private var mLoader:URLLoader = new URLLoader();
        private var mXML:XML;

        //add a listener 
        mLoader.addEventListener(Event.COMPLETE, OnLoadXML, false, 0, true);
        mLoader.load(new URLRequest("../assets/content.xml"));

....
        /* 
        OnLoadXML
        Parses the data from the file, loads one level
        @e:Event    
        */  
        private function OnLoadXML(e:Event):void{   
            var loadLevel:Array = new Array();
            try{
                //convert the text into an XML
                mXML = new XML(e.target.data);
                //trace("reading from .xml is done, values: ", mXML);
                trace(" Name of the level: ", mXML.level[mCurrentLevelNumber].title.text() );
                for (var j:int=0; j<mXML.level[mCurrentLevelNumber].tiles.tilerow.length(); j++) {
                        trace("Row",j,", tiles:", mXML.level[mCurrentLevelNumber].tiles.tilerow[j].text() );
                }
                //......
                //}  
            }catch (e:TypeError){
                trace("Could not parse the XML");
                trace(e.message);
            }
        }


And the xml file structure;
<!-- pretty level arrays... -->
<levels>
    <level>
        <title>Level 1</title>
        <tiles>
            <tilerow>1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 1 1 1 3 1 13</tilerow>
            <tilerow>1 0 0 0 0 0 0 0 0 0 0 0 10 12 0 9 0 0 0 0 0 0 0 0 1</tilerow>
            <tilerow>1 0 0 0 0 1 0 0 0 0 0 0 10 11 11 11 12 0 6 1 0 0 0 0 1</tilerow>
            <tilerow>1 9 1 0 0 1 0 0 0 0 0 0 10 12 0 9 0 0 6 0 0 0 0 0 1</tilerow>
        </tiles>
    </level>
</levels>       
...