в конструкторе каждого из классов можно сохранять ссылку на себя в некое общее место, где будет проходить проверка
Для случая с неопределенным числом классов, можно унаследовать экземпляры от некого общего, который будет сохранять ссылку на себя по группам с именем 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 );
}
}