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

Mr. Fixit 08.03.2007 17:35

firstChild
 
Возможно чтобы не писать несколько раз подраяд firstChild.firstChild.firstChild. Написать типа firstChild[2], или что-то вроде этого?

iNils 08.03.2007 17:38

1. Использовать в xml id, а во флеше idMap
2. Iv придумал скрипт который позволяет это писать как firstChild[0][0], но работает он в 250 раз медленее
3. Написать функцию в которую в качеств параметров передавать (0,0,0), а возвращаться будет ссылка на нужный нод.

Mr. Fixit 08.03.2007 17:40

ого, прийдеться разобраться.
iNils спасибо

iNils 08.03.2007 17:47

Для третьего случая
Код:

function getNode (xml:XML):XMLNode {
        var node:XMLNode = xml.firstChild;
        for (var i:Number = 1; i < arguments.length; i++) {
                node = node.childNodes[arguments[i]];
        }
        return node;
}
var xml:XML = new XML ('<main><a z="1"><b z="3">ABC</b></a><a z="2"></a></main>');
xml.ignoreWhite = true;
trace (getNode (xml));
trace ("");
trace (getNode (xml, 0));
trace ("");
trace (getNode (xml, 0, 0));
trace ("");
trace (getNode (xml, 0, 0, 0));
trace ("");
trace (getNode (xml, 1));


Mr. Fixit 08.03.2007 20:32

а если загружаю XML?
то пишет undefined!

etc 08.03.2007 20:35

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

Mr. Fixit 08.03.2007 21:07

да просто поспешил..
Я просто хочу сделать программку, что бы при добавлении новых фоток в файл XML, новые отображались без изменения ч-л во Флеше, не получается. Как обратиться к атрибутам при том коде что мне привел iNils?

etc 08.03.2007 21:08

Функция возвращает искомую ноду. Возьми у этой ноды атрибуты.

iNils 08.03.2007 21:18

Для моего примера
Код:

trace (getNode (xml, 1).attributes.z);

Mr. Fixit 08.03.2007 21:41

все сделал, то что хотел, но не полностью.
зы: iNils спасибо.
--
Дело в том, что приходиться при добавлении новых файлов, вводить в атрибут Count='число'.. можно ли как-то сделать, что бы сам флеш определял сколько строк в файле XML?

iNils 08.03.2007 21:43

Взять число нодов :)

etc 08.03.2007 21:43

childNodes.length

Mr. Fixit 08.03.2007 21:45

просто тот код который ты мне привел, мне не ясно понятен, не скажешь как?
зы: я не успел написать, как ты уже ответил ;)

Mr. Fixit 08.03.2007 21:46

вот и уже __etc ответил.. спасибо!
только пишет undefined.. если вывести через trace

etc 08.03.2007 21:49

А как ты пытаешься вывести через трейс?
И вообще, покажи XML и что ты хочешь из него получить.

iNils 08.03.2007 21:50

Код:

function getNode (xml:XML):XMLNode {
        var node:XMLNode = xml.firstChild;
        for (var i:Number = 1; i < arguments.length; i++) {
                node = node.childNodes[arguments[i]];
        }
        return node;
}
var xml:XML = new XML ('<main><a z="1"><b z="3">ABC</b></a><a z="2"></a></main>');
xml.ignoreWhite = true;
trace (getNode (xml).childNodes.length);
trace ("");
trace (getNode (xml, 0).childNodes.length);
trace ("");
trace (getNode (xml, 0, 0).childNodes.length);
trace ("");
trace (getNode (xml, 0, 0, 0).childNodes.length);
trace ("");
trace (getNode (xml, 1).childNodes.length);


Mr. Fixit 08.03.2007 21:53

Тема закрыта.
iNils и __etc - спасибо!


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

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