Показать сообщение отдельно
Старый 25.04.2012, 11:52
bublic_bicubic вне форума Посмотреть профиль Отправить личное сообщение для bublic_bicubic Найти все сообщения от bublic_bicubic
  № 4  
Ответить с цитированием
bublic_bicubic
 
Аватар для bublic_bicubic

Регистрация: Mar 2010
Сообщений: 48
в конструкторе каждого из классов можно сохранять ссылку на себя в некое общее место, где будет проходить проверка

Для случая с неопределенным числом классов, можно унаследовать экземпляры от некого общего, который будет сохранять ссылку на себя по группам с именем getQualifiedClassName( this )

к примеру:
Код AS3:
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 );
	}
 
}