Как вариант. Обычный перебор каждого с каждым на двух циклах

Код AS3:
var a:Array /* of DisplayObject */;
const len:uint = a.length;
for (var outer:uint = 0; outer < len; outer++) {
var master:DisplayObject = a[outer] as DisplayObject;
for (var inner:uint = 0; inner < len; inner++) {
if (outer == inner) // самого себя не проверяем
continue;
var slave:DisplayObject = a[inner] as DisplayObject;
if ( master.hitTestObject(slave) ) {
trace('Bingo!');
}
}
}
Только здесь присутствует избыточная проверка, т.к. в определенные моменты master меняется местами со slave.
А вот это вам на
десерт.