Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обработка внешнего xml (http://www.flasher.ru/forum/showthread.php?t=202485)

kirill1989 18.07.2013 19:44

Обработка внешнего xml
 
Всем доброго времени суток, есть код который считывает внутренний xml и заносит данные в массив:
Код AS3:

var myXml:XML = <frames>
                                        <frame num="1" active="true"/>
                                        <frame num="2" active="true"/>
                                        <frame num="3" active="true"/>
                                        <frame num="4" active="true"/>
                                        <frame num="5" active="true"/>
                                        <frame num="6" active="true"/>
                                        <frame num="7" active="true"/>
                                        <frame num="8" active="true"/>
                                        <frame num="9" active="true"/>
                                        <frame num="10" active="true"/>
                                        <frame num="11" active="true"/>
                                        <frame num="12" active="true"/>
                                        <frame num="13" active="true"/>
                                        <frame num="14" active="true"/>
                                        <frame num="15" active="true"/>
                                        <frame num="16" active="true"/>
                                        <frame num="17" active="true"/>
                                        <frame num="18" active="true"/>
                                        <frame num="19" active="true"/>
                                        <frame num="20" active="true"/>
                                        <frame num="21" active="true"/>
                                        <frame num="22" active="true"/>
                                        <frame num="23" active="true"/>
                                        <frame num="24" active="true"/>
                                        <frame num="25" active="true"/>
                                        <frame num="26" active="true"/>
                                        <frame num="27" active="true"/>
                                        <frame num="28" active="true"/>
                                        <frame num="29" active="true"/>
                                        <frame num="30" active="true"/>
                                        <frame num="31" active="true"/>
                                        <frame num="32" active="true"/>
                                        <frame num="33" active="true"/>
                                        <frame num="34" active="true"/>
                                        <frame num="35" active="true"/>
                                        <frame num="36" active="true"/>
                                        <frame num="37" active="true"/>
                                        <frame num="38" active="true"/>
                                        <frame num="39" active="true"/>
                                        <frame num="40" active="true"/>
                                        <frame num="41" active="true"/>
                                        <frame num="42" active="true"/>
                                        <frame num="43" active="true"/>
                                        <frame num="44" active="true"/>
                                        <frame num="45" active="true"/>
                                        <frame num="46" active="true"/>
                                        <frame num="47" active="true"/>
                                        <frame num="48" active="true"/>
                </frames>;
 
                for each(var frame:XML in myXml.frame)
{
 
        if (frame.@active == needToWrite)
        {
                arrayOfFrames.push(frame.@num);
        }
}
trace(arrayOfFrames);

, то в trace я вижу корректные данные (1, 2, 3, 4, 5...), но когда я пытаюсь загрузить внешний XML.xml при помощи кода :
Код AS3:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("F720A.xml"));
function LoadXML(event:Event):void {
xmlData = new XML(event.target.data);
//trace(xmlData);
}
 
 
for each(var frame:XML in xmlData.frame)
{
 
        if (frame.@active == needToWrite)
        {
                arrayOfFrames.push(frame.@num);
        }
}
trace(arrayOfFrames);

, то в trace я ничего не получаю и программа не работает. Как мне подправить код и в чем причина?
P.S. Когда ставлю
Код AS3:

trace(xmlData);

сразу после загрузки файл xml, то в output вижу целиком xml вместе с тегами.

GBee 18.07.2013 19:49

так, а где обработчик LoadXML?

kirill1989 18.07.2013 19:52

Цитата:

Сообщение от GBee (Сообщение 1141382)
так, а где обработчик LoadXML?

Извиняюсь не докопировал
Код AS3:

function LoadXML(event:Event):void {
xmlData = new XML(event.target.data);
trace(xmlData);
}


GBee 18.07.2013 20:27

ну так почти все правильно
Код AS3:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("F720A.xml"));
 
 
function LoadXML(event:Event):void
{
    xmlData = new XML(event.target.data);
    trace(xmlData.toXMLString());
    for each(var frame:XML in xmlData.frame)
    {
        if (frame.@active == needToWrite) //не уверен, что "true" == true
        {
            arrayOfFrames.push(frame.@num);
        }
    }
    trace(arrayOfFrames);
}



Часовой пояс GMT +4, время: 07:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.