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

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

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

Регистрация: Feb 2008
Сообщений: 77
Question Как вычислить предыдущую нажатую кнопку?

Привет всем!
Есть функция, которая обрабатывает MOUSE_OUT для тонны кнопок. У каждой кнопки есть флаг, соотвественно если нажата кнопка 1 то в переменной единица. В функции есть условие, если есть активная кнопка и нажали на сцену то gotoAndPlay("out") той кнопки которая была нажата, если нажали на другую кнопку, то (вот тут то и косяк) предыдущая кнопка должна gotoAndPlay("out"). Не могу сообразить как это сделать. Подскажите плиз кто знает.

Код AS3:
function outEvents(event:MouseEvent):void
{
	if (main_mc.x != mainX && main_mc.y != mainY)
	{
		//отжать предыдущую нажатую кнопку
	}
	else
	{
		if (event.target == menu_item_1)
		{
			event.currentTarget.gotoAndPlay("out");
			main_mc.north_america_mc.gotoAndPlay("out");
		}
		else if (event.target == main_mc.north_america_mc)
		{
			event.currentTarget.gotoAndPlay("out");
			menu_item_1.gotoAndPlay("out");
		}
		else if (event.target == menu_item_2)
		{
			event.currentTarget.gotoAndPlay("out");
			main_mc.europe_mc.gotoAndPlay("out");
		}
		else if (event.target == main_mc.europe_mc)
		{
			event.currentTarget.gotoAndPlay("out");
			menu_item_2.gotoAndPlay("out");
		}
		...
                ...
                ...
	}
}

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

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Ваш код - это жесть.
Если в каждый момент времени может быть нажата только одна кнопка, то храните ссылку на нее в переменной.
Этого вполне достаточно.
__________________
Griver

Старый 27.01.2009, 17:43
ptirA вне форума Посмотреть профиль Отправить личное сообщение для ptirA Найти все сообщения от ptirA
  № 3  
Ответить с цитированием
ptirA

Регистрация: Feb 2008
Сообщений: 77
если можно маленьким примером пожалуйста ...
да мой код - это жесть)))

Добавлено через 1 час 44 минуты
Ладно... перефразирую... как заставить делать "out" у любой активной кнопки, при условии нажатия любой другой? %)

Старый 27.01.2009, 19:50
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от ptirA Посмотреть сообщение
если можно маленьким примером пожалуйста
Пример чего? Как присвоить переменной ссылку на объект?

Код AS3:
private var activeButton:MovieClip;
 
private function clickHandler(event:MouseEvent):void
{
    if (activeButton == event.target) return;
    if (activeButton != null)
    {
        activeButton.gotoAndPlay("out");
    }
    activeButton = event.target as MovieClip;
    activeButton.gotoAndPlay("in");
}
__________________
Griver

Старый 27.01.2009, 21:17
ptirA вне форума Посмотреть профиль Отправить личное сообщение для ptirA Найти все сообщения от ptirA
  № 5  
Ответить с цитированием
ptirA

Регистрация: Feb 2008
Сообщений: 77
(((( нет... я ничего не понял... пытался разобраться с тем что Вы написали, но без успешно... видимо надо все пере*ерачивать( в моем случае это не применимо.

Но все равно спасибо!

Старый 28.01.2009, 21:22
darksranger вне форума Посмотреть профиль Отправить личное сообщение для darksranger Посетить домашнюю страницу darksranger Найти все сообщения от darksranger
  № 6  
Ответить с цитированием
darksranger
 
Аватар для darksranger

блогер
Регистрация: Jun 2007
Адрес: in sankt - peterburg
Сообщений: 787
Записей в блоге: 2
Отправить сообщение для darksranger с помощью ICQ
Код AS3:
private var activeButton:MovieClip; - обьявляем переменную для всего класса ( чтобы могла хранить нажатую кнопку) 
 
private function clickHandler(event:MouseEvent):void
{
    if (activeButton == event.target) return; - если нажимаем на ту которая нажата выходим из метода 
    if (activeButton != null) - проверяем не является ли предидущая нажатая кнопка null ( это может быть при первом входе в метод так как в activButton еще не чего нету ) 
    {
        activeButton.gotoAndPlay("out"); собственно если нажимается другая кнопка отжимаем ту которая была нажата до этого 
    }
    activeButton = event.target as MovieClip; сохраняем ссылку на только что нажатую кнопку 
    activeButton.gotoAndPlay("in"); и собственно нажимаем 
}
и вопрос что тут не понятного ? код вроде простой до ужаса
может вам стоит почитать того же мука ?
__________________
на каком языке вы пишите?
а на каком нужно?

Старый 30.01.2009, 18:09
Danss вне форума Посмотреть профиль Отправить личное сообщение для Danss Найти все сообщения от Danss
  № 7  
Ответить с цитированием
Danss
[+4 19.03.08]
 
Аватар для Danss

Регистрация: Apr 2007
Адрес: Ukraine,Kharkov
Сообщений: 103
кстати мук в эл. виде появился на русском, скачать можно тут: http://www.bookarchive.ru/computer/g...kovodstvo.html

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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