Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема с загруской данных из XML (http://www.flasher.ru/forum/showthread.php?t=114826)

_gluc_ 11.08.2008 10:36

Проблема с загруской данных из XML
 
Требуется загружать некоторые данные из файла XML (URL фотографий и текст статьи), вроде бы сам файл загружается нормально (трасировкой проверял) и работать должно, но вместо значений трасировка выдаёт только undefined, ну и соответственно ничего не загружается в сам клип и не заполняется текстовое поле. Помогите пожалуйста советом, сроки горят, а у меня тут ступор =((

AS код:
Код:

var mcl:MovieClipLoader = new MovieClipLoader();
var page_xml:XML = new XML();
page_xml.load("content.xml");
page_xml.ignoreWhite = true;
var currentNum:Number = 1;
var obj:Object = new Object();
mcl.addListener(obj);
function getContent(contentNode:XMLNode):Array {
        var url:String = contentNode.attributes.url;
        trace("contentNode.attributes.url="+contentNode.attributes.url)
        var txt_preview:String = contentNode.firstChild.nodeValue;
        return [url, txt_preview];
}
function displayContent():Void {
        var url_pic = getContent(currentNode)[0];
        var txt_pre = getContent(currentNode)[1];
        mcl.loadClip(url_pic,ph_m);
        ph_m._x = 15;
        ph_m._y = 15;
        trace("text="+_level0.txt_pre);
        trace("url="+_level0.url_pic);
}
page_xml.onLoad = function(success) {
        if (success) {
                var topNode = page_xml.firstChild;
                var totalNum = topNode.childNodes.lenght;
                displayContent(currentNode);
        }
};

и содержимое XML:
Код:

<content>
        <image url="photos/photo_1_big.jpg">
        </image>
       
        <text_preview>
        <![CDATA[Аллегро варьирует музыкальный гекзаметр, учитывая опасность, которую представляли собой писания
        Дюринга для не окрепшего еще немецкого рабочего движения. Midi-контроллер интегрирует сюжетный
        анимус, таким образом, сходные законы контрастирующего развития характерны и для процессов в психике.
        Гегельянство использует комплекс агрессивности, при этом буквы А, В, I, О символизируют соответственно
        общеутвердительное, общеотрицательное, частноутвердительное и частноотрицательное суждения. Статус
        художника синхронно имитирует словесный здравый смысл, однако Зигварт считал критерием истинности
        необходимость и общезначимость, для которых нет никакой опоры в объективном мире.
        Богатство мировой литературы от Платона до Ортеги-и-Гассета свидетельствует о том, что искусство
        трансформирует резкий септаккорд, изменяя привычную реальность. Художественный идеал дает гармониче-
        ский интервал, это и есть одномоментная вертикаль в сверхмногоголосной полифонической ткани. 
        ]]></text_preview>
</content>


Wolsh 11.08.2008 12:43

Код:

if (success) {
                var topNode = page_xml.firstChild;
                var totalNum = topNode.childNodes.lenght;
                displayContent(currentNode);
        }

И что здесь currentNode?

_gluc_ 11.08.2008 14:30

Ну да, вообще-то лишне оно там, это просто последний вариант из тех что перепробовал... в общем проблемы это не решит... (( А подругому я не знаю как поступить...

Wolsh 11.08.2008 16:39

Да Вы меня не поняли. У вас везде этот каррентНоде. А что это? Откуда? НЕТ у Вас нигде в коде, что это такое.

qazwsx 11.08.2008 17:02

Код:

var mcl:MovieClipLoader = new MovieClipLoader();
var page_xml:XML = new XML();
page_xml.load("content.xml");
page_xml.ignoreWhite = true;
var currentNum:Number = 1;
var obj:Object = new Object();
mcl.addListener(obj);
function getContent(contentNode:XMLNode):Array {
        var elem:XMLNode = contentNode.firstChild;
        var url:String = elem.attributes.url;
        elem = elem.nextSibling;
        var txt_preview:String = elem.firstChild.toString();
        trace(url+', '+txt_preview);
        return [url, txt_preview];
}
function displayContent():Void {
        var node:XMLNode = page_xml.firstChild;
        var arr:Array = getContent(node);
        var url_pic = arr[0];
        var txt_pre = arr[1];
        mcl.loadClip(url_pic,ph_m);
        ph_m._x = 15;
        ph_m._y = 15;
        trace("text="+txt_pre);
        trace("url="+url_pic);
}
page_xml.onLoad = function(success) {
        if (success) {
                page_xml.ignoreWhite = true;
                var topNode = page_xml.firstChild;
                var totalNum = topNode.childNodes.lenght;
                displayContent();
        }
};

ПОЛУЧИ!!!!^_^

Вот в такомже безобразном виде как и написанно у тебя... А переписывать все я конечно не стану... Но надеюсь ты догадаешся почему у тебя не ображалось ничего >_<

_gluc_ 11.08.2008 20:55

qazwsx, спасибо большое! Всё работает... Разобрался, понял, буду внимательнее...


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

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