![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 2
|
Привет всем! Такой вот вопрос, надо создать несложное меню : увеличение текста при навелении и уменьшение при отведении, при клике размер остается увеличенный. Проблема в том что текст дрожит и еще какая-то фигня происходит(( как это сделать? текст кнопки без фона должен быть
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот фон сделайте прозрачной заливкой (с alpha = 0), глядишь и дрожать перестанет. Дрожит из-за того что текст при масштабировании ускользает из-под курсора. Если будет фон, то и проблемы не будет – под мышкой всегда будет "тело" кнопки.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 2
|
Спасибо большое) а как сделать так чтоб при клике размер кнопки оставался увеличенным?
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не уменьшать.
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну какой вопрос, такой и ответ. Уровень абстракции не нарушен).
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 149
|
Занесите все кнопки меню в массив. При нажатии на любую из кнопок пробигитесь по массиву и всем кнопкам, кроме нажатой, выставляйте уменьшенный вид.
А вообще, опишите подробней что есть ваши кнопки и как запускаете флешку. Допустим если флешка запущена через браузер и при нажатии на кнопки страница обновляется, то такой подход не прокатит. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Всегда поражался такому подходу. А не проще сохранять ссылку на одну текущую нажатую кнопку?
А если возвращение в уменьшенное состояние это анимация? Вы будете вызывать анимацию "от большого к маленькому" у всех кнопок, надеясь что среди них окажется и ОДНА нажатая?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 149
|
Wolsh, Ваша правда. Конечно проще перезаписывать при нажатии ссылку на текущую кнопку, чем каждый раз бегать по массиву. Так вы имели ввиду?
private var menuBut1:MenuBut=new MenuBut(); private var menuBut2:MenuBut=new MenuBut(); private var menuBut3:MenuBut=new MenuBut(); private var curBut:MenuBut; public function createMenu():void{ menuButt1.addEventListener(MouseEvent.CLICK, onMouseClick); menuButt2.addEventListener(MouseEvent.CLICK, onMouseClick); menuButt3.addEventListener(MouseEvent.CLICK, onMouseClick); curBut=menuButt1; } private function onMouseClick(e:MouseEvent):void{ curBut.стануМаленькой(); curBut=e.target; curBut.стануБольшой(); } Это все приходит с опытом, спасибо за совет. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Да, конечно.
Только не "стануБольшой" (увеличение было запущено при наведении, т.е. на ролловер), а "останусьБольшой". В этом методе (не обязательно оформлять как отдельный метод, но по возможности желательно) мы отрубаем активной кнопке всяческую реакцию на мышь, т.е. делаем removeEventListener для всех слушателей. Теперь при уходе мыши для этой кнопки не запустится анимация на роллаут, то есть в данном примере – уменьшение, и при новом наведении не запустится анимация увеличения. Кнопка остается глухой к мышке, пока мы ее не разморозим при клике на другую кнопку. То есть в вашем псевдокоде должно быть не только curBut.стануМаленькой(); но и curBut.стануСноваАктивной();
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|