zveryuka
20.03.2009, 21:30
Столкнулся с небольшой загвоздкой в коде.....
-создаю меню из 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>
// Создаём обьект 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);
}
-создаю меню из 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>
// Создаём обьект 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);
}