Форум 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 & Flash (http://www.flasher.ru/forum/showthread.php?t=94002)

neFX 02.04.2007 21:16

простой пример XML & Flash
 
Здравствуйте. Сегодня весь день пытаюсь разобраться со связью Флэша с XML, и чот как то глухо).. в статье на сайте про XML какой то косяк в коде с созданием цикла, он у меня не работает и ошибку найти не могу)..

Может может кто посоветовать простой пример такой связи, или где про это можно поситать?

MINASTIS 02.04.2007 21:20

Почитать про это можно на сайте в разделе статьи, а посмотреть наглядно на сайте в разделе исходники. А разобраться самолично можно в help (f1) флеша, там рассмотреть XML.
На крайний случай книженцию по AS купить, обязательно чтобы была с объектом XML.

screamge 02.04.2007 22:28

две статьи по которым я сам разбирался...Iv - a и УильямБрэдберри

http://www.artlebedev.ru/tools/techn...etc/flash-xml/
http://fordesign.info/547_0_144.html

neFX 03.04.2007 19:51

Спасиб за литературку! очень помогла, терь появился конкретный вопрос:
вот мой код:
Код:

_root.createTextField("myTextField", 1, 20, 20, 400, 40);
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("myxml.xml");
myXML.onLoad = function(success)
{
        if(success == true)
        {
                        var les = myXML.firstChild; // объявим лес
                        for(i=0;i<les.childNodes.length;i++)
                        {
                                myTextField.text+=les.childNodes[i].nodeName+ "\n";
                        }
        }
}

не могли бы подсказать как правильно сделать чтобы каждому ноду соответствовало создание нового текстового поля с уникальным именем.

screamge 03.04.2007 20:20

тот же текст что в первой строке вашего скрипта только в цикле, только меняйте уровень.
_x и _y поля либо в хмл ну или просто определять динамически.

DanQuimby 03.04.2007 20:31

так не много переделал твой текст не знаю как он у тя работал или нет
но есть небольшой недочет текстовое поле было изначально МАЛЕНЬКОЕ в него просто много не влезало :)
Код:

XML

<menu name="Tutorials" href="/tutorials/">
        <submenu name="Flash" href="/tutorials/flash/" />
        <submenu name="Denis" href="/tutorials/flash/" />
        <submenu name="Artem" href="/tutorials/flash/" />
        <submenu name="ActionScript" href="/tutorials/actionscript/" />
</menu>

Код:

_root.createTextField("myTextField", 1, 20, 20, 400, 400);
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("text.xml");
myXML.onLoad = function(success)
{
        if(success == true)
        {
                        var les = myXML.firstChild; // объявим лес
                        for(i=0;i<les.childNodes.length;i++)
                        {
                                myTextField.text+=les.childNodes[i].attributes.name+ "\n";
                                trace (les.childNodes[i].attributes.name);
                        }
        }
}


neFX 03.04.2007 20:33

я поробывал тока чот с названиям не понял..
Код:

myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("myxml.xml");
myXML.onLoad = function(success)
{
        if(success == true)
        {
                        var les = myXML.firstChild; // объявим лес
                        for(i=0;i<les.childNodes.length;i++)
                        {
                                _root.createTextField("myTextField"+"i", 1+i, 20, 20+i*20, 400, 40+i*20);
                                myTextField.text+=les.childNodes[i].nodeName+ "\n";
                        }
        }
}

и честно говоря вообще перестало что либо выводить

screamge 03.04.2007 20:37

Код:

myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("myxml.xml");
myXML.onLoad = function(success)
{
        if(success == true)
        {
                        var les = myXML.firstChild; // объявим лес
                        for(i=0;i<les.childNodes.length;i++)
                        {
                                _root.createTextField("myTextField"+i, 1+i, 20, 20+i*20, 400, 40+i*20);
                                _root["myTextField" + i].text+=les.childNodes[i].nodeName+ "\n";
                        }
        }
}


DanQuimby 03.04.2007 21:14

neFX постарайся избежать усложнение кода
потому что тогда в 90% ты просто не будеш понимать,то что ты
хотел от данной функции.

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

neFX 03.04.2007 21:36

Спасибо за пример.
Мне просто нужно чтобы разные ноды находились в разных местах флэхи, поэтому мне нужно много стат полей(по крайней мере я так решаю эту проблему)
Вопрос
Вот допустим я вывожу не все ноды а только столько сколько мне требуется, а на 2 кадре вывожу оставшиеся..
а как сделать чтобы старые текстовые поля удалялись..
можно конечно делать всё в разных мувах и потом делать removeMovieClip(); , но мне кажется можно проще сделать..


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

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