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

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

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
По умолчанию проблема с hitTestPoint

наверное уже обсуждалось но всё же прошу помочь разобраться с проблемой
Код AS3:
for each(var point:MapPoint in this.points) {
	if(point.hitTestPoint(mouseX, mouseY, false)) {
		e.stopPropagation();
		point.dispatchEvent(new GeometryEvent(GeometryEvent.POINT_MOUSE_DOWN));
						return true;
	}
}
и так point лежит в мувике geometry который в свою очередь еще в одном а тот уже лежит в stage

тест не проходит, где моя ошибка

Старый 21.08.2009, 16:39
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Перевести координаты мыши в локальные - туда, где лежат MapPoint.

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
изменил на такой вариант:

Код AS3:
for each(var point:MapPoint in this.points) {
					var mousePoint:Point = new Point(mouseX, mouseY);
					mousePoint = this.globalToLocal(mousePoint);
					if(point.hitTestPoint(mousePoint.x, mousePoint.y, false)) {
//						e.stopPropagation();
						point.dispatchEvent(new GeometryEvent(GeometryEvent.POINT_MOUSE_DOWN));
						return true;
					}
					else {
						return false;
					}
				}
так как этот метод в себя как раз добавляет в себя точки то и преобразование в локальные координаты веду чере this или не верно опять

Старый 21.08.2009, 17:58
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Хм. Я наврал, прошу прощения, координаты переводить не обязательно. Твои оба варианта рабочие. Ошибка в другом месте.

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
да спасибо, понял что не там

Добавлено через 65 часов 10 минут
новый баг обнаружился:
суть в том что у меня есть объект(назовём его движимым) в который я складываю движимые объекты,

я добавляю в него объекты которые хочу в последствие при попадание двигать, при этом вот какая последовательность:

- добавил объект
после этого если я нажимаю по моему объекту то он прекрасно проходит hittest но если я после добавления сдвигаю главный объект в котором содержится объект для проверки то тест не проходится, в чем причина?

Код AS3:
public function isGeometryClick():Boolean {
			if(this.points.length > 0) {
				for each(var point:MapPoint in this._points) {
					if(point.hitTestPoint(mouseX, mouseY, false)) {
						Globals.is_block_map = true;	
						point.dispatchEvent(new GeometryEvent(GeometryEvent.POINT_MOUSE_DOWN));
						return true;
					}
				}
				return false;
			}
			else
				return false;
		}

Старый 24.08.2009, 18:26
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 6  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Из-за того, что ты двигаешь контейнер, спрайт не может перестать ловить события. В другом месте ошибка опять - либо что-то перекрывает твой объект, либо еще что-то.

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
ну вот на самом деле не совсем понятная зависимость: если не двигал родительский контейнер то всё ок а если двигал то не канает
при этом здесь другой код то помойму ну никак не связан

Добавлено через 71 час 9 минут
подскажите, при какой ситуации может возникнуть что после драга перестает проходить hitTestPoint

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

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

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


 


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


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