![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 8
|
Есть 3,4,5 кнопок, неважно, какое-то количество. При нажатии на кнопку допустим она меняет какие-то свои параметры, так вот чтоб при нажатии другой, она меняла свои параметры на первоначальные, а нажатая при этом меняла свои параметры.
PS извините если есть такая тема, чуток порылся не нашел. Буду признателен помощи. PPS для кнопок создан класс, и они создаются в основном классе мувика. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Пусть созданный вами класс для кнопок предоставляет методы setDefaultParams и setSelected к примеру. Основной класс пусть сохраняет текущую выбранную кнопку в переменной selectedButton (или эту переменную можно сделать статической переменной класса кнопки). При клике по какой-либо кнопке:
Это я все в общих принципах описал... |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 8
|
было бы здорово есби был какой-то конкретный пример =\
|
|
|||||
|
strange mood
|
Я бы сделал какой-нибудь ButtonsManager, запихал все кнопки в него и на него же возложил обязанности по слежению и установке состояния кнопок. В конце концов всё равно скорее всего их придётся пихать в один мувиклип.
А кнопки (которые и не кнопки на самом деле, а мувиклипы, ибо должны ещё уметь принимать разные состояния) просто посылают событие при клике и обладают методами типа activate/deactivate. При клике по кнопке ButtonsManager ловит от неё MouseEvent.CLICK, вызывает у неё activate(), для предыдущей активной кнопки, ссылка на которую сохранена в приватной переменной, вызывает deactivate() и обновляет ссылку. Может ещё послать наверх событие что мол сменилась активная кнопка.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 8
|
я запарился короче, сижу второй день над вопросом, как запихать в переменную именно тот объект который я тока что тыкнул?
Добавлено через 4 минуты а точнее этот урод (Adobe Flash CS3 Professional) матерится постоянно на event.currentTarget типа говорит какая-то хреновая переменная. я уже так устал, простите за грубость, меня уже трясет от этой сраной проблемы, абсолютно элементарно, но я не могу дойти.. |
|
|||||
|
Строчку, на которой ругается (с контекстом) и текст ошибки приведите, пожалуйста.
__________________
Дело не в тебе |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 8
|
все, спасибо всем, проблема решена...
function checkMenu(Event:MouseEvent) - в этой строчке писал большую "Е" вместо малой) вот и все пришлось переписывать код, чтоб заметить эту неточность. завтра выложу коды решения в 2х вариантах, тупой и короткий |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Может кому пригодится
![]() |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 8
|
Вот итоговый код моего меню. кому интересно. я думаю мож кто-нить даже сможет использовать его в своих целях.
package { import ButtonOuterBR; import ButtonOuterBL; import ButtonOuterTL; import ButtonOuterTR; import ButtonCN; import Buttons; import fl.transitions.Tween; import fl.transitions.easing.*; import fl.transitions.TweenEvent; import flash.display.MovieClip; import flash.geom.*; import flash.events.*; public class Main extends MovieClip { private var _xPos = 160; private var _yPos = 160; private var setType:String; private var _buttonBR:ButtonOuterBR; private var _buttonBL:ButtonOuterBL; private var _buttonTL:ButtonOuterTL; private var _buttonTR:ButtonOuterTR; private var _buttonCN:ButtonCN; private var _currentMenu:Object; public function Main() { createMenus(); } private function createMenus():void { _currentMenu = null; //Creating and Properties of Bottom Right Button _buttonBR = new ButtonOuterBR(); addChild(_buttonBR); //buttonBR.setType("News"); _buttonBR.addEventListener(MouseEvent.CLICK, Active); var colorBR:ColorTransform = new ColorTransform(); colorBR.blueOffset = 150; _buttonBR.x = _xPos; _buttonBR.y = _yPos; _buttonBR.transform.colorTransform = colorBR; //Creating and Properties of Bottom Left Button _buttonBL = new ButtonOuterBL(); addChild(_buttonBL); //buttonBL.setType("Contact"); _buttonBL.addEventListener(MouseEvent.CLICK, Active); var colorBL:ColorTransform = new ColorTransform(); colorBL.redOffset = 150; _buttonBL.x = _xPos; _buttonBL.y = _yPos; _buttonBL.transform.colorTransform = colorBL; //Creating and Properties of Top Left Button _buttonTL = new ButtonOuterTL(); addChild(_buttonTL); //buttonTL.setType("Works"); _buttonTL.addEventListener(MouseEvent.CLICK, Active); var colorTL:ColorTransform = new ColorTransform(); colorTL.greenOffset = 150; _buttonTL.x = _xPos; _buttonTL.y = _yPos; _buttonTL.transform.colorTransform = colorTL; //Creating and Properties of Top Right Button _buttonTR = new ButtonOuterTR(); addChild(_buttonTR); //buttonTR.setType("Photos"); _buttonTR.addEventListener(MouseEvent.CLICK, Active); var colorTR:ColorTransform = new ColorTransform(); colorTR.greenOffset = 100; colorTR.blueOffset = 100; _buttonTR.x = _xPos; _buttonTR.y = _yPos; _buttonTR.transform.colorTransform = colorTR; //Creating and Properties of Central Button _buttonCN = new ButtonCN(); addChild(_buttonCN); //buttonCN.setType("About"); _buttonCN.addEventListener(MouseEvent.CLICK, Active); var colorCN:ColorTransform = new ColorTransform(); colorCN.greenOffset = 190; colorCN.redOffset = 190; _buttonCN.x = _xPos; _buttonCN.y = _yPos; _buttonCN.transform.colorTransform = colorCN; } public function Active(event:MouseEvent):void { if (_currentMenu == null) { _currentMenu = event.currentTarget; _currentMenu.activeIt(); _currentMenu.removeEventListener(MouseEvent.CLICK, Active); } else { _currentMenu.addEventListener(MouseEvent.CLICK, Active); _currentMenu.deactiveIt(); event.currentTarget.removeEventListener(MouseEvent.CLICK, Active); event.currentTarget.activeIt(); _currentMenu = event.currentTarget; } } } } Последний раз редактировалось Lolo; 21.11.2008 в 17:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|