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

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

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

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
По умолчанию Неверные данные в stage.mouseX.

Есть скролл, обычный спрайт, его тягаю при нажатии мыши через старт драг, когда мышь отпускается то идет проверка на stage.mouseX и собственно это значение не равно event.stageX как это возможно?
Код AS3:
private function onStartDragHandler(event:MouseEvent):void {
            _slider.startDrag(false, new Rectangle(_slider.x, 1, 0, _bar.height - _slider.height - 2));
            _isDragged = true;
 
            GlobalDispatcher.addCustomEventListener(MouseEvent.MOUSE_UP,  onStopDragHandler);
            GlobalDispatcher.addCustomEventListener(MouseEvent.MOUSE_MOVE,  onMouseMoveHandler);
            dispatchEvent(new Event(Slider.START_DRAG));
  }
 
 
  private function onStopDragHandler(event:MouseEvent):void {
            _slider.stopDrag();
            _isDragged = false;
 
            trace(view.stage.mouseX, GlobalDispatcher.mouseX, event.stageX); // << 548 548 624
 
            GlobalDispatcher.removeCustomEventListener(MouseEvent.MOUSE_UP,  onStopDragHandler);
            GlobalDispatcher.removeCustomEventListener(MouseEvent.MOUSE_MOVE,  onMouseMoveHandler);
            dispatchEvent(new Event(Slider.STOP_DRAG));
  }

Старый 22.10.2011, 01:55
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Как это возможно? ну нпаример потому, что слайдер находится внутри какого то контейнера и он рассматривает локальную координату не глобальную, не ?
__________________
Марк Tween

Старый 22.10.2011, 02:44
Thurman Merman вне форума Посмотреть профиль Отправить личное сообщение для Thurman Merman Найти все сообщения от Thurman Merman
  № 3  
Ответить с цитированием
Thurman Merman

Регистрация: Jun 2010
Сообщений: 9
Если верить докам в event.stageX должны попасть глобальные координаты.
Увидеть бы код метода dispatchEvent класса GlobalDispatcher.

Старый 22.10.2011, 03:24
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
event.stageX - вообще меня все время настораживала эта конструкция, че то в ней нетак. Работайте со стандартным mouseX да и делов то. на 2 строчки больше кода? фи...
__________________
Марк Tween

Старый 22.10.2011, 14:34
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 5  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Цитата:
Увидеть бы код метода dispatchEvent класса GlobalDispatcher.
просто диспатч ивента от имени стейджа. GlobalDispatcher.as:
Код AS3:
		public static function dispatchEvent($event:Event, $dispatcherObject:Object = null):Boolean
		{
			if (debugMode && $dispatcherObject) trace($dispatcherObject, "сказал", $event.type);
			return _stage.dispatchEvent($event);
		}
 
		/**
		 * Координаты курсора пользователя в данный текущий момент.
		 */
		public static function get mouseX():Number { return _stage.mouseX; }
		public static function get mouseY():Number { return _stage.mouseY; }
вообщем то проблема в том что event.stageX дает верный результат, а вот stage.mouseX врет. Проверял просто рисовал прямоугольник 4х4 и аттачил в эти координаты.
Цитата:
Как это возможно? ну нпаример потому, что слайдер находится внутри какого то контейнера и он рассматривает локальную координату не глобальную, не ?
вы о чем? О_о


Последний раз редактировалось nOobCrafter; 22.10.2011 в 14:36.
Старый 22.10.2011, 15:57
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 6  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
А ещё вот как бывает http://www.flasher.ru/forum/showthread.php?t=151624

Старый 22.10.2011, 16:23
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 7  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
совсем печаль, но в чем же причина?

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

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

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


 


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


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