Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   изменение цвета при нажатии на кнопку (http://www.flasher.ru/forum/showthread.php?t=144979)

Zlata8686 26.09.2010 21:49

изменение цвета при нажатии на кнопку
 
Добрый вечер. Приношу свои извинения, если мой вопрос не новый, просматривала много сайтов, но не нашла конкретных ответов на свои вопросы.
В наличии сайт, отрисованный в фотошопе и импортированный по слоям в флеш. Все нужное переведено в Buttons и MovieClips. Учитывая, что все кнопки уже ранее созданы графически, я так понимаю, что программно их в отдельном коде описывать не стоит, только можно прописать координаты, высоту и ширину. Нажимая на каждую кнопку главного меню (при нажатии кнопка-текст окрашиваются другим цветом с применением нужных фильтров), вызывается подменю ( появляется внизу одной строкой). При выборе пункта подменю также данная кнопка-текст окрашиваюся в иной цвет. К каждой кнопке меню и подменю в коде прописываю свои конкретные переменные, через которые при нажатии загружаются нужные xml-файлы.
Вопрос: как прописать, что при нажатии кнопки (допустим, Btn_1), ее цвет меняется и применяются нужные фильтры, при нажатии другой кнопки (Btn_2), происходят те же изменения, а кнопка Btn_1 приобретает первоначальные параметры?

samana 26.09.2010 23:06

А вы при клике по кнопке, в начале запускайте функцию, где циклом пробегайте по всем кнопкам (они в массиве должны быть), и отключайте им фильтры и цвет, а после этого назначайте изменения текущей кнопке. Что то вроде этого
Код AS3:

//массив кнопок
var buttons:Array=[b1,b2]
 
//слушатель для каждой кнопки
setListener();
function setListener(){
        for(var i=0;i<buttons.length;i++){
                buttons[i].addEventListener(MouseEvent.ROLL_OVER,over)
        }
}
 
function over(e:MouseEvent):void{
        resetButtons();
        var activeButton=e.target
        activeButton.filters=[new GlowFilter()]
}
 
//отцистка кнопок от эффектов
function resetButtons(){
        for(var i=0;i<buttons.length;i++){
                var button=buttons[i]
                button.filters=[]
        }
}



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

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