Немного модифицировал Ваш алгоритм, сделал пересечение нескольких линий, саму проверку пересечения оставил Вашу

Код AS3:
var lines:Array = [];
lines.push([[10,10],[50,50]]); //линия с начальными координатами и конечными
lines.push([[60,60],[100,100]]); //линия с начальными координатами и конечными
lines.push([[110,110],[140,140]]); //линия с начальными координатами и конечными
lines.push([[150,30],[0,0]]); //линия с начальными координатами и конечными
lines.push([[70,0],[70,100]]); //линия с начальными координатами и конечными
//Прорисовываем для наглядности
graphics.lineStyle(5, 0);
for each(var line in lines) {
graphics.moveTo(line[0][0], line[0][1]);
graphics.lineTo(line[1][0], line[1][1]);
}
//проверка на пересечение
for (line in lines) {
for (var subline = line+1; subline < lines.length; subline++)
{
var Ca = (lines[subline][1][0]-lines[subline][0][0])*( lines[line][0][1]-lines[subline][0][1]) - (lines[subline][1][1]-lines[subline][0][1])*(lines[line][0][0]-lines[subline][0][0]);
var Cb = (lines[line][1][0]-lines[line][0][0])*(lines[line][0][1]-lines[subline][0][1]) - (lines[line][1][0]-lines[line][0][1])*(lines[line][0][0]-lines[subline][0][0]);
var Z = (lines[subline][1][1]-lines[subline][0][1])*(lines[line][1][0]-lines[line][0][0]) - (lines[subline][1][0]-lines[subline][0][0])*(lines[line][1][0]-lines[line][0][1]);
if (Z != 0)
{
var Ua = Ca/Z;
var Ub = Cb/Z;
if ((Ua>0) && (Ua<1) && (Ub>0) && (Ub<1) )
{
trace("Пересекается прямая ", lines[line], " с прямой ", lines[subline]);
return;//если надо найтим все пересечения, return убираем
}
}
}
}