Форум 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, перебрать указанный узел через onPress (http://www.flasher.ru/forum/showthread.php?t=110722)

Ящур 07.04.2008 21:06

Xml, перебрать указанный узел через onPress
 
Вложений: 1
Есть меню
Код:

<?xml version="1.0" encoding="utf-8" ?>
<tree>
    <stvol01 nom = "a" >
        <vetka01 nomer ="01">
            <otrostok file = "001" />
            <otrostok file = "002"  />
            <otrostok file = "003"  />
        </vetka01>
        <vetka02 nomer ="01">
            <otrostok file = "001" />
            <otrostok file = "002"  />
            <otrostok file = "003"  />
        </vetka02>
    </stvol01>
    <stvol02 nom = "b" >
        <vetka01 nomer ="01">
            <otrostok file = "001" />
            <otrostok file = "002"  />
            <otrostok file = "003"  />
        </vetka01>
        <vetka02 nomer ="01">
            <otrostok file = "001" />
            <otrostok file = "002"  />
            <otrostok file = "003"  />
        </vetka02>
    </stvol02>
</tree>

Обрабатываю так( принцип взят с тутора на flashBlog.ru):
Код:

menu_xml = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(ok) {
        if (ok) {               
                F_createMenu();
        }
};
menu_xml.load("menu.xml");
F_createMenu = function () {
        total_stvol = menu_xml.childNodes[0].childNodes.length;
        for (i=0; i<total_stvol; i++) {
                _root.createEmptyMovieClip("btn"+i, i);
                var but = _root["btn"+i];
                but.createTextField("pole", 2, 0, 280,150, 20);
                but.pole.border=true;
                with (but.pole) {
                        selectable = false;
                        text = menu_xml.childNodes[0].childNodes[i].attributes.nom;
                but._y = (but._height+1)*i;
                }
                but.onPress = function() {
                        currentNode = menu_xml.childNodes[0].childNodes[i].attributes.nom;
                trace (currentNode);
                       
                       
                };
        }

При трэйсе undefined,хотелось бы получить атрибут узла на который нажимаю,тогда можно было бы обрабатывать циклом выборочные узлы. Возможно такое сделать?
Спасибо.

crc 07.04.2008 22:04

В вашем случае ивент онПресс не знает что такое menu_xml. Здесь же будет ошибка из-за childNodes[i], при инициализации кнопки допишите
Код:

but.id = i
И внутри ивента используйте
Код:

currentNode = _root.menu_xml.childNodes[0].childNodes[this.id].attributes.nom;

Ящур 08.04.2008 08:31

Спасибо, заработало.


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

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