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

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

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

Регистрация: Jul 2011
Сообщений: 121
По умолчанию Проблема с отслеживанием объектов

Добрый день.
Столкнулся с проблемой взаимодействия мувиков при их перемещении.
Есть код перемещения объекта:
Код AS3:
box1_mc.myHomeX = box1_mc.x;
box1_mc.myHomeY = box1_mc.y;
 
box1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
box1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject); 
function pickupObject(event:MouseEvent):void {
 event.target.startDrag(true); 
} 
function dropObject(event:MouseEvent):void {
 event.target.stopDrag();
 if (event.target.dropTarget.parent.name == "target1"){
event.target.x=box1_mc.myHomeX;
event.target.y=box1_mc.myHomeY;
} elseif {
//box1_mc отпущен над target2, то box1_mc.x= target2.x; box1_mc.y= target2.y;
} else {
 box1_mc.x=box1_mc.myHomeX;
 box1_mc.y=box1_mc.myHomeY;
}
 
}
Такая задача: как сделать, чтоб при перетаскивании мувика box_mс, цели t1_mc и t2_mc меняли состояние, если box1_mc проносится над ними?


Последний раз редактировалось Sweet07; 26.01.2012 в 14:24.
Старый 26.01.2012, 02:00
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 2  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Для отслеживания во время движения используйте MouseEvent.MOUSE_MOVE.

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

Регистрация: Jul 2011
Сообщений: 121
Уже пробовал, но из-за того, что под мышью находится перетаскиваемый объект, реакции нет.

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Цитата:
Сообщение от Sweet07 Посмотреть сообщение
Уже пробовал, но из-за того, что под мышью находится перетаскиваемый объект, реакции нет.
Можно спрашивать MouseEvent.MOUSE_MOVE у stage. Тогда не важно что под курсором

Добавлено через 7 минут
Код AS3:
...
box1_mc.addEventListener(MouseEvent.MOUSE_DOWN, pickupObject); 
box1_mc.addEventListener(MouseEvent.MOUSE_UP, dropObject); 
box1_mc.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveObject);
 
function pickupObject(event:MouseEvent):void {
	// ...
} 
function dropObject(event:MouseEvent):void {
	// ...
}
function moveObject(event:MouseEvent):void {
	//...
}
...
Добавлено через 9 минут
Правда тогда event.target уже не будет указывать на box1_mc


Последний раз редактировалось elder_Nosferatu; 26.01.2012 в 14:28.
Старый 26.01.2012, 14:29
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 5  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Дополню :
Код AS3:
box1_mc.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveObject);
function moveObject(event:MouseEvent):void {
	if(box1_mc.hitTestObject(target2))
{
//бокс касается таргет2
}
}
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 26.01.2012, 23:12
Sweet07 вне форума Посмотреть профиль Отправить личное сообщение для Sweet07 Найти все сообщения от Sweet07
  № 6  
Ответить с цитированием
Sweet07
 
Аватар для Sweet07

Регистрация: Jul 2011
Сообщений: 121
А как сделать чтоб происходило действие, если box1_mc покидает зону target2?


Последний раз редактировалось Sweet07; 27.01.2012 в 00:04.
Старый 27.01.2012, 00:24
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 7  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
to Sweet07 Зачем же вы стерли свою благодарность?
__________________
http://www.chessmax.ru

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

Регистрация: Jul 2011
Сообщений: 121
Спс что подметили, это было непреднамеренно.
Genzo, ещё раз: большое спасибо.


Последний раз редактировалось Sweet07; 27.01.2012 в 01:44. Причина: Сделал. Всем большое спасибо.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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