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

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

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

Регистрация: Nov 2007
Сообщений: 165
Question XML Динамическое меню - переменная

Столкнулся с небольшой загвоздкой в коде.....


-создаю меню из n количества кнопок. Подгружаю Какой-либо Мувиклип (пример fg).

-из XML файла загружаю Атрибут "GTN" - он должен отвечать за номер фрейма в определенном Мувиклипе(пример fg)

У меня не выходит скомпоновать данные получаемые из ХМЛ файла - так чтоб при нажатии на Кнопку код вел меня в Мувиклип на "GTN" фрейм.


-в XML файле написан такой код


Код:
<menu>
<item name="Item 1" GTN="57" NM = "1" color="0x006699" />
<item name="Item 2" GTN="66" NM = "1" color="0x006699" />
<item name="Item 3" GTN="54" NM = "1" color="0x006699" />
<item name="Item 4" GTN="45" NM = "1" color="0x006699" />
<item name="Item 5" GTN="44" NM = "1" color="0x006699" />
<item name="Item 6" GTN="36" NM = "2" color="0x006699" />
<item name="Item 7" GTN="72" NM = "1" color="0x006699" />
<item name="Item 8" GTN="75" NM = "1" color="0x006699" />
<item name="Item 9" GTN="80" NM = "1" color="0x006699" />
</menu>
Код AS1/AS2:
// Создаём обьект XML
menu_xml = new XML();
// Игнорируем все ненужные пробелы и переносы строк
menu_xml.ignoreWhite = true;
// Отслеживаем полную загрузку xml
menu_xml.onLoad = function(ok) {
	if (ok) {
		// Если xml загрузился запускаем функцию построения меню
		F_createMenu();
	}
};
// Загружаем menu.xml
menu_xml.load("menu.xml");
// Делаем функцию для создания меню
F_createMenu = function () {
	// Заводим переменную для хранения количества элементов массива (длинны массива)
	var len = menu_xml.childNodes[0].childNodes.length;
	// В цикле перебираем массив
	for (var i = 0; i<len; i++) {
		// Для каждой кнопки создаём мувик
		_root.createEmptyMovieClip("btn"+i, i);
		// Для краткости создадим переменную хранящюю название кнопки
		var b = _root["btn"+i];
		// Аттачим из библиотеки задний фон для кнопки
		b.attachMovie("back", "back", 1);
		// Создаём текстовое поле для отображения названия кнопки
		b.createTextField("tf", 2, 0, -2, 200, 15);
		btxt = new TextFormat();
		btxt.size = 10;
		btxt.color = 0xFFFFFF;
 
		// Применяем к тексту нужные параметры
		with (b.tf) {
			selectable = false;
			// Вытаскиваем из массива нужное название кнопки
			text = menu_xml.childNodes[0].childNodes[i].attributes.name;
			setTextFormat(btxt);
		}
		// Устанавливаем кнопки по вертикали друг за другом с промежутком в один пиксель
		b._y = (b._height+2)*i;
		// Задаём для каждой кнопки ссылку для перехода по ней при нажатии
 
 
		b.GTN = parseInt(menu_xml.childNodes[0].childNodes[i].attributes.GTN);
		b.NM = parseInt(menu_xml.childNodes[0].childNodes[i].attributes.NM);
 
		// Выкрашиваем кнопку в заданный цвет
		var my_color = new Color(b.back);
		my_color.setRGB(menu_xml.childNodes[0].childNodes[i].attributes.color);
		// Вешаем обработчик событий нажатия на кнопку
		b.onPress = function() {
 
			// При нажатии переходим по ссылке
			trace(this.GTN);
			trace(this.NM);
 
			_root.goto();
			//getURL(this.link, "_self");
		};
	}
};
/////////////////////////////////////////////////////
 
 
 
attachMovie("fg","fg",20,{_x:200,_y:0})
 
 
function goto(){
 
	fg.gotoAndStop(GTN);
	}
Вложения
Тип файла: rar TEST_MENU.rar (9.9 Кб, 57 просмотров)

Старый 20.03.2009, 22:45
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 2  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Замените 58 строку, на
Код AS1/AS2:
goto(this);
и 72, на
Код AS1/AS2:
fg.gotoAndStop(mc.GTN);
Добавлено через 2 минуты
Ах да, еще 70, на
Код AS1/AS2:
function goto(mc){

Старый 23.03.2009, 12:48
zveryuka вне форума Посмотреть профиль Отправить личное сообщение для zveryuka Найти все сообщения от zveryuka
  № 3  
Ответить с цитированием
zveryuka
 
Аватар для zveryuka

Регистрация: Nov 2007
Сообщений: 165
Спс...

Добавлено через 6 часов 13 минут
Не хотят Эти кнопки удалятся....уже много чего перепробывал....циклом не хотят .... поштучно на ура удаляются....


нехотят они так удалятся

Код AS1/AS2:
removeMovieClip(_root["btn"+i]);
Говорили что нечетный лвл не удаляется.....


делал такое....
Код AS1/AS2:
_root["btn"+i].swapDepths(this.getNextHighestDepth())
_root["btn"+i].removeMovieClip()
тож никакой реакции.... может кто-то подсказать в чем ошибка.?


Последний раз редактировалось zveryuka; 23.03.2009 в 19:01.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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