![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
Имеются два или более классов. Экземпляры одного из классов должны проходить проверку на пересечение с экземплярами других классов. Все экземпляры не именованы.
Возможно такое в принципе?Если да, то хоть направление дайте. Массивы использовать не хочется.Для hitTest нужны оба объекта, а у меня только this.Можно ли ко второму объекту подобраться через класс? |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 48
|
в конструкторе каждого из классов можно сохранять ссылку на себя в некое общее место, где будет проходить проверка
Для случая с неопределенным числом классов, можно унаследовать экземпляры от некого общего, который будет сохранять ссылку на себя по группам с именем getQualifiedClassName( this ) к примеру: class CheckIntersections extends Object { static public var groupA:Vector.<Sprite> = new Vector.<Sprite>(); static public var groupB:Vector.<Sprite> = new Vector.<Sprite>(); static public function check():Boolean { // проверяем пересечение между группами for ( var i_a:int = 0; i_a < groupA.length; i_a++ ) { for ( var i_b:int = 0; i_b < groupB.length; i_a++ ) { if ( checkTwo( groupA[ i_a ], groupB[ i_a ] ) ) { return true; } } } return false; } static public function checkTwo( a:Sprite, b:Sprite ):Boolean { // проверка } } class SpriteA extends Sprite { public function SpriteA() { super(); CheckIntersections.groupA.push( this ); } } class SpriteB extends Sprite { public function SpriteB() { super(); CheckIntersections.groupB.push( this ); } } |
|
|||||
|
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
Имеется ввиду не создавать свой, а, например, воспользоваться дефолтным-отображаемых объектов.
Добавлено через 9 часов 10 минут Вобщем первичное решение такое: Код в Class1 for(var i:uint=0;i<this.parent.numChildren;i++){ if(this.parent.getChildAt(i) is Class2){ if(this.hitTestObject(this.parent.getChildAt(i))){ trace("BIG BADA BOOM"); return; } } } Всем спасибо за ответы. //Да,естественно экземпляры обоих классов от одного родителя. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|