Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.11.2008, 17:24
Lolo вне форума Посмотреть профиль Отправить личное сообщение для Lolo Найти все сообщения от Lolo
  № 1  
Ответить с цитированием
Lolo

Регистрация: Nov 2008
Сообщений: 8
По умолчанию Как деактивировать объекты, если выбрается другой

Есть 3,4,5 кнопок, неважно, какое-то количество. При нажатии на кнопку допустим она меняет какие-то свои параметры, так вот чтоб при нажатии другой, она меняла свои параметры на первоначальные, а нажатая при этом меняла свои параметры.

PS извините если есть такая тема, чуток порылся не нашел. Буду признателен помощи.
PPS для кнопок создан класс, и они создаются в основном классе мувика.

Старый 20.11.2008, 17:38
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Пусть созданный вами класс для кнопок предоставляет методы setDefaultParams и setSelected к примеру. Основной класс пусть сохраняет текущую выбранную кнопку в переменной selectedButton (или эту переменную можно сделать статической переменной класса кнопки). При клике по какой-либо кнопке:
Код AS3:
selectedButton.setDefaultParams();
clickedButton.setSelected();
selectedButton = clickedButton;
Это я все в общих принципах описал...

Старый 20.11.2008, 18:51
Lolo вне форума Посмотреть профиль Отправить личное сообщение для Lolo Найти все сообщения от Lolo
  № 3  
Ответить с цитированием
Lolo

Регистрация: Nov 2008
Сообщений: 8
было бы здорово есби был какой-то конкретный пример =\

Старый 20.11.2008, 19:23
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 4  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Я бы сделал какой-нибудь ButtonsManager, запихал все кнопки в него и на него же возложил обязанности по слежению и установке состояния кнопок. В конце концов всё равно скорее всего их придётся пихать в один мувиклип.

А кнопки (которые и не кнопки на самом деле, а мувиклипы, ибо должны ещё уметь принимать разные состояния) просто посылают событие при клике и обладают методами типа activate/deactivate.

При клике по кнопке ButtonsManager ловит от неё MouseEvent.CLICK, вызывает у неё activate(), для предыдущей активной кнопки, ссылка на которую сохранена в приватной переменной, вызывает deactivate() и обновляет ссылку.

Может ещё послать наверх событие что мол сменилась активная кнопка.
__________________
тонкий тролль, осеянный благодатью

Старый 20.11.2008, 20:07
Lolo вне форума Посмотреть профиль Отправить личное сообщение для Lolo Найти все сообщения от Lolo
  № 5  
Ответить с цитированием
Lolo

Регистрация: Nov 2008
Сообщений: 8
я запарился короче, сижу второй день над вопросом, как запихать в переменную именно тот объект который я тока что тыкнул?

Добавлено через 4 минуты
а точнее этот урод (Adobe Flash CS3 Professional) матерится постоянно на event.currentTarget типа говорит какая-то хреновая переменная. я уже так устал, простите за грубость, меня уже трясет от этой сраной проблемы, абсолютно элементарно, но я не могу дойти..

Старый 20.11.2008, 20:55
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 6  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Строчку, на которой ругается (с контекстом) и текст ошибки приведите, пожалуйста.
__________________
Дело не в тебе

Старый 20.11.2008, 21:39
Lolo вне форума Посмотреть профиль Отправить личное сообщение для Lolo Найти все сообщения от Lolo
  № 7  
Ответить с цитированием
Lolo

Регистрация: Nov 2008
Сообщений: 8
все, спасибо всем, проблема решена...
function checkMenu(Event:MouseEvent) - в этой строчке писал большую "Е" вместо малой) вот и все

пришлось переписывать код, чтоб заметить эту неточность. завтра выложу коды решения в 2х вариантах, тупой и короткий

Старый 20.11.2008, 21:49
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 8  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Может кому пригодится
Вложения
Тип файла: rar Menu.rar (223.5 Кб, 62 просмотров)

Старый 21.11.2008, 17:45
Lolo вне форума Посмотреть профиль Отправить личное сообщение для Lolo Найти все сообщения от Lolo
  № 9  
Ответить с цитированием
Lolo

Регистрация: Nov 2008
Сообщений: 8
Вот итоговый код моего меню. кому интересно. я думаю мож кто-нить даже сможет использовать его в своих целях.

Код AS3:
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;
			}
		}
	}
}
Ну как понимаете Buttons - это класс описывающий кнопку и что она будет делать, функции activeIt(); и deactiveIt(); это функции при которых она становится активной и неактивной соответсвенно.


Последний раз редактировалось Lolo; 21.11.2008 в 17:51.
Создать новую тему Ответ Часовой пояс GMT +4, время: 05:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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