Форум 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)
-   -   Логика построения динамического меню (http://www.flasher.ru/forum/showthread.php?t=91808)

Мыкыта 08.02.2007 23:43

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

собсно сабж:
грузим XML
пихуем его в массив
цыклом строим менюшки присваивая им имена из массива
далее идет проверка есть ли дочерние узлы (подменю)
если есть то (во тут загвоздка) если идти через переменную а потом пихать в массив то выводится только последняя обработанная в цикле инфа
возможно ли создать динамическую переменную с динамическим именем и опять таки динамически получить к ней доступ и динамически зиписать ее значение в массив (да всеравно куда =)
воть код
Код:

onClipEvent (load) {
        arr = new Array();
        arr = _root.decor_xml.firstChild.childNodes;
        this.item._visible = 0;
        function init() {
                //создание основного меню
                spacing = item._height+2;
                numberOfButtons = arr.length;
                var i = -1;
                var y_sp = -1.5;
                while (++i<numberOfButtons) {
                        ++y_sp;
                        name = "item"+i;
                        item.duplicateMovieClip(name, i);
                        this[name].butt.text = arr[i].attributes.name;
                        //this[name]._x = 0;
                        this[name]._y = y_sp*spacing;
                        //создание подменю если есть таковое============================
                        if (arr[i].childNodes.length != 0) {
                                var tmp = arr[i].childNodes;
                                //====================================событие мыши======================
                                this[name].onRelease = function() {
                                        arr_sub = new Array();
                                        arr_sub = tmp;
                                        trace(arr_sub);
                                        //===================================переходим к кадру подменю=========================
                                        if (_root.subM == 1) {
                                                stop();
                                        } else {
                                                _parent.sub.gotoAndPlay("s1");
                                                _parent.sub.subsub1.gotoAndPlay("s1");
                                        }
                                        //=======================================================================================
                                        spacing_sub = _parent.sub.subsub1.Subart.sub_menu.item._height+2;
                                        buttPath = _parent.sub.subsub1.Subart.sub_menu;
                                        numberOfbuttonSub = arr_sub.length;
                                        //trace(buttPath);
                                        //trace(spacing_sub);
                                        //trace(numberOfbuttonSub);
                                        var j = -1;
                                        var y_sub = -1.5;
                                        while (++j<numberOfbuttonSub) {
                                                ++y_sub;
                                                name_sub = "item"+j;
                                                buttPath.item.duplicateMovieClip(name_sub, j);
                                                buttPath[name_sub].butt.text = arr_sub[j].attributes.name;
                                                buttPath[name_sub]._y = y_sub*spacing_sub;
                                        }
                                };
                        }
                }
        }
        init();
}


Мыкыта 09.02.2007 17:56

ау есть кто?

Мыкыта 09.02.2007 19:46

спасибо за внимание проблемное место удалось решить как всегда проблема с доступом неправильно указывал доступ к переменной =))) золотые слова впомнил если что то неработает то проблема скорее всего с доступом =)))

Nirth 09.02.2007 20:04

очень мало народу разумного копается в onClipEvent

etc 09.02.2007 20:28

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


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

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