![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
У меня есть 256 кнопок на сцене 4х видом (отличия только внешние). При нажатии на кнопку, кнопка меняет свой цвет и значение переменной привязанной к кнопке (например knopka214.checked = true).
Как написав минимум кода заставить это все работать? Раньше решал подобную задачу с помощью цикла, но все это конечно далеко от совершенства. Как сделать правильно? |
|
|||||
|
Модрон-ветеринар
|
В таком духе:
for (i = 1; i <= 50; i++) { var btn:MovieClip = _root['btn' + i]; //вводим ссылку на текущий в цикле мувик-кнопку btn.checked = false ; //задаем некую переменную внутри мувика btn.col = new Color(btn); //создаем объект Color не где-нибудь, а прямо внутри мувика btn.onPress = btnOnPress; //назначем обработчик на его onPress } function btnOnPress () { this.checked = true ; //меняем переменную this.col.setRGB(0xFF6600); //теперь легко можем обратиться к объекту Color данного мувика } var colors:Array = [0xFF6600, 0xFF0000, 0xFFCC00, 0x3366FF] ; for (g = 0; g < 4; g++) { var firstNum:Number = 64 * g; // = 0, 64, 128, 192 var lastNum:Number = 64 * g + 63; // = 63, 127, 191, 255 for (i = firstNum; i < lastNum; i++) { var btn:MovieClip = _root['btn' + (i + 1)]; btn.checked = false ; btn.col = new Color(btn); btn.futureColor = colors[g]; //для разновидностей - разные цвета btn.onPress = btnOnPress; } } function btnOnPress () { this.checked = true ; this.col.setRGB(this.futureColor); } Последний раз редактировалось mooncar; 11.07.2010 в 23:19. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
назначить кнопкам один класс. как я понял - это всего 4 мувика.
__________________
Отряд Котовскага |
|
|||||
|
[+4 06.05.14]
|
for (i = 1; i <= 50; i++) { var btn:MovieClip = _root['btn' + i]; //вводим ссылку на текущий в цикле мувик-кнопку btn.checked = false ; //задаем некую переменную внутри мувика btn.col = new Color(btn); //создаем объект Color не где-нибудь, а прямо внутри мувика btn.onPress = btnOnPress; //назначем обработчик на его onPress } function btnOnPress () { this.checked = true ; this.col.setRGB(0xFF6600); trace(this) // maybe _root ? } |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
человек спросил как сделать без циклов и правильно, а вы опять ему циклов напихали)
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Огромное спасибо! Да, цикл точно не нужен.
|
|
|||||
|
Модрон-ветеринар
|
Да, не совсем уяснил, что требовалось автору. Биг зур пардон.
in4core, this там ссылается не на _root, а на кнопку, на которую нажали, поскольку |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Странно, но я не могу заставить работать кнопку при повторном нажатии.
Если я добавляю условие в функцию то переменная checked всегда равна false. |
|
|||||
|
Регистрация: Jul 2008
Сообщений: 35
|
Спасибо! Совсем про это забыл
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|