Просмотр полной версии : не могу добраться до конкретной кнопки массива
be_tween
03.10.2008, 20:06
доброго дня всем!
столкнулся вот с какой проблемой. создаю динамически массив кнопок:
for (var n:Number = 0; n != 3; n++) {
this.createEmptyMovieClip(["but"+n],n);
}
в цикле кнопки рисуются тоже динамически.
не получается навесить на массив общую функцию нажатия...
работает, только если указываю конкретную кнопку:
this.but1.onRelease = function(){
trace("work");
}
не работает:
this["but"+n].onRelease = function(){
trace("work");
}
не могу понять, в чем подводные камни?
var btn:MovieClip;
for(var i:Number = 0; i < 3; i ++){
btn = this.createEmptyMovieClip('button' + i, i);
btn.onRelease = function(){
trace(this)
}
}
be_tween
04.10.2008, 09:10
да, спасибо, так работает)
be_tween
05.10.2008, 08:15
наверное, этот вопрос лучше задать здесь же, а не в новой теме...
зашел в тупик. вот этот код:
var buttonNumber:Number = 5;
for (var i:Number = 0; i<buttonNumber; i++) {
var menu:MovieClip = attachMovie("mc"+i, "button"+i, i);
var m_arr:Array = new Array();
menu.m_arr = ["button0", "button1", "button2", "button3", "button4"];
menu.onPress = function() {
menu.m_arr.gotoAndStop(1);
this.gotoAndStop(2);
trace(menu.m_arr);
};
}
аттачит из библиотеки несколько клипов. у клипов два фрейма - два состояния. нажатие на кнопку переводит клип на второй фрейм. соответственно нажатую перед этим кнопку нужно вернуть в исходное состояние. чтобы не вычислять, какая из них была нажата, решил собрать их одним массивом и передать приказ перейти в исходное положение всему массиву. вот только корректно сделать это не получается, хотя все элементы массива трейсятся. и если я вручную перечисляю клипы, все работает, а через массив никак.
не подскажете, в чем загвоздка?
1) Зачем же для каждой кнопки массив-то создавать) Создайте один массив снаружи цикла и в цикле добавляйте в него создаваемую кнопку.
2) menu.m_arr.gotoAndStop(1); - ? Откуда в массивах появились кадры и методы перехода по временной шкале?
В данном случае массивы вообще не нужны. Заведите переменную и храните в ней ссылку на выбранный пункт меню.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.