Сегодня вечером подумаю что можно сделать.
С кругами все конечно идеально, но алгоритм сложноват получается.
Я пол ночи бился чтоб проверку на пересечение придумать.
Вот кстати код. Он проверяет пересечение 2 линий, но если они пересекаются своими концами, то считает что не пересекаются. Что мне и нужно было.
Со множеством линий пока не тестировал.

Код AS3:
var xx:Array = new Array(5);
var yy:Array = new Array(5);
var Z;
var Ca;
var Cb;
var Ua;
var Ub;
xx[1]=10; yy[1]=10;
xx[2]=200; yy[2]=200;
xx[3]=10; yy[3]=200;
xx[4]=200; yy[4]=10;
//Прорисовываем для наглядности
graphics.clear();
graphics.lineStyle(5, 0);
graphics.moveTo(xx[1], yy[1]);
graphics.lineTo(xx[2], yy[2]);
graphics.moveTo(xx[3], yy[3]);
graphics.lineTo(xx[4], yy[4]);
//*********
Ca = (xx[4]-xx[3])*(yy[1]-yy[3]) - (yy[4]-yy[3])*(xx[1]-xx[3]);
Cb = (xx[2]-xx[1])*(yy[1]-yy[3]) - (yy[2]-yy[1])*(xx[1]-xx[3]);
Z = (yy[4]-yy[3])*(xx[2]-xx[1]) - (xx[4]-xx[3])*(yy[2]-yy[1]);
if (Z != 0)
{
Ua = Ca/Z;
Ub = Cb/Z;
if ((Ua>0) && (Ua<1) && (Ub>0) && (Ub<1) )
{
trace("Пересекается")
}
}