Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 08.02.2007, 23:43
Мыкыта вне форума Посмотреть профиль Отправить личное сообщение для Мыкыта Найти все сообщения от Мыкыта
  № 1  
Ответить с цитированием
Мыкыта

Регистрация: Mar 2003
Адрес: Россия, Санкт-Петербург
Сообщений: 565
Question Логика построения динамического меню

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

собсно сабж:
грузим 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();
}


Последний раз редактировалось Мыкыта; 08.02.2007 в 23:46.
Создать новую тему   Часовой пояс GMT +4, время: 05:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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