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

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

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

Регистрация: Jul 2010
Адрес: Бердск, НСК
Сообщений: 171
Записей в блоге: 1
Question Срабатывание события ROLL_OUT при движении мышки вправо

Хочу сделать свой курсор над определенными спрайтами. Собственно тема и есть вопрос, есть спрайт, на котором висят три события ROLL_OVER, ROLL_OUT и MOUSE_MOVE. Ели двигаешь мышку влево по спрайту, то все ок, если вправо, то постоянно срабатывает ROLL_OUT, ROLL_OVER.

Код AS3:
public function showZoom(object:Sprite):void
		{
			_objects[object] = "zoom";
			object.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
			object.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
			object.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
		}
 
		private function mouseMoveHandler(e:MouseEvent):void
		{
			if (_currentCursor) {
				_currentCursor.x = _container.mouseX;
				_currentCursor.y = _container.mouseY;
			}
		}
 
		private function rollOverHandler(e:MouseEvent):void
		{
			Mouse.hide();
			var type:String = _objects[e.target];
			var cursor:Sprite;
			switch(type) {
				case "left":
					_currentCursor = _leftArrow;
					break;
				case "right":
					_currentCursor = _rightArrow;
					break;
				case "zoom":
					_currentCursor = _zoom;
					break;
				default:
					break;
			}
			_currentCursor.x = _container.mouseX;
			_currentCursor.y = _container.mouseY;
			_currentCursor.visible = true;
		}
 
		private function rollOutHandler(e:MouseEvent):void
		{
			Mouse.show();
			_currentCursor.visible = false;
		}
_currentCursor лежит в _container; cпрайт подгружается из swf, его прозрачность 0.01.
Подскажите в чем проблема.

Старый 29.05.2013, 12:13
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 2  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Возникновение событий не зависит от направления перемещения. Надо смотреть расположение спрайтов.

Старый 29.05.2013, 13:22
evgen4ik вне форума Посмотреть профиль Отправить личное сообщение для evgen4ik Найти все сообщения от evgen4ik
  № 3  
Ответить с цитированием
evgen4ik

Регистрация: Apr 2010
Сообщений: 82
скорее всего при движении вправо дефолтный курсор наползает на спрайт вашего курсора и, спрайт-контейнер, с которого был совершен переход стреляет событие ролл_аут, потом вы пересчитываете координаты спрайта вашего курсора -> он сдвигается, и дефолтный курсор опять перескакивает со спрайта курсора на спрайт-контейнер и последний стреляет ролл_овер

Старый 29.05.2013, 13:33
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
_currentCursor.mouseEnabled = false;
_currentCursor.mouseChildren = false;
__________________
Reality.getBounds(this);

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

Регистрация: Jul 2010
Адрес: Бердск, НСК
Сообщений: 171
Записей в блоге: 1
Видимо вы правы, попробовал вариант Wolsh, почему-то не сработало, но когда прибавил к координатам мышки 3, более менее работает. В итоге изменил эти свойства у контейнера содержащего курсоры - помогло, спасибо)

Старый 30.05.2013, 00:08
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 6  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Чем отличается Бердск, НСО от Бердск, НСК?

Старый 30.05.2013, 02:31
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Видимо, "Бердск, НСК" это перечисление "Бердск, Новосибирск")))
А я просто "Бердск Новосибирская Область".
__________________
Reality.getBounds(this);

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

Теги
ROLL_OUT , влево
Опции темы
Опции просмотра

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

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


 


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


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