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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.10.2009, 17:30
  № 1  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
По умолчанию Проверка на столкновение с объектами определенного класса

Ребята, подскажите пожалуйста как сделать следующую штуку:
В основном классе (Document class) создаются обекты класса A, и В (из одного пакета test). Каждый раз после перемещения объекта класса A, нужно проверить, столкнулся ли он с каким-нибудь объектом из B, или нет.
Хотелось бы, чтоб выглядело примерно так:
Код AS3:
package test{
	public class A{
		public function A(){
			// код
			this.addEventListener(MouseEvent.MOUSE_UP,stopDragElement);
		}
	private function stopDragElement(e:Event):void{
		this.stopDrag();
		if(this.hitTestObject(любой объект b принадлежащий B) 
			trace("Столкновение вот с этим объектом"+b);
		}
	}
}

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

Регистрация: Feb 2008
Адрес: N.Novgorod
Сообщений: 80
Отправить сообщение для alecsisk с помощью ICQ
Вот почти то, что вы хотели . Только столкновение проверяется в родительском классе.
Вложения
Тип файла: rar tempProject.rar (9.9 Кб, 35 просмотров)

Старый 10.10.2009, 19:50
  № 3  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Спасибо, alecsisk, пойдет и так.
Но вот еще вопрос:
Можно ли как-нибудь узнать все объекты, с которыми столкнулся а?
Например:
Код:
МассивХранящийОбъекты =  а.ВыдатьВсеОбектыСкоторымиОнСтолкнулся();
Ведь тогда можно будет перебирать не объекты типа В, а объекты, участвующие в столкновении и уже из них брать подходящие (и делать это где угодно, а не только в родителе)

Старый 10.10.2009, 20:11
alecsisk вне форума Посмотреть профиль Отправить личное сообщение для alecsisk Найти все сообщения от alecsisk
  № 4  
Ответить с цитированием
alecsisk

Регистрация: Feb 2008
Адрес: N.Novgorod
Сообщений: 80
Отправить сообщение для alecsisk с помощью ICQ
удалите bArray из кода и те места где он используется. Замените в классе Main:
Код AS3:
private function onMoveA (e:Event):void {
	var myArray:Array = [];
 
	for (var i:uint = 0; i < this.numChildren; i++) {
		var mc:DisplayObject = this.getChildAt(i);
		if (!(mc is A) && isCollision(a, mc)) myArray.push(mc);
	}
 
	trace(myArray);
}

Старый 10.10.2009, 22:02
  № 5  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Не, хочется наоборот: перебрать столкнувшиеся объекты и выбрать нужные, а не перебрать все, и выбрать те что и столкнулись и нужные)

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

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

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


 


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


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