Вот, нашёл:

Код AS1/AS2:
public static function LineVsLine(v1 : Vector2, v2 : Vector2, v3 : Vector2, v4: Vector2) {
var zn = (v4.y-v3.y)*(v2.x-v1.x)-(v4.x-v3.x)*(v2.y-v1.y);
var ua = ((v4.x-v3.x)*(v1.y-v3.y)-(v4.y-v3.y)*(v1.x-v3.x))/zn;
var ub = ((v2.x-v1.x)*(v1.y-v3.y)-(v2.y-v1.y)*(v1.x-v3.x))/zn;
if ((ua>=0 && ua <=1) && (ub>=0 && ub <=1)) return true;
return false;
}
Функция из моей игрушки отсюда:
http://flasher.ru/forum/showthread.php?t=115821 (:
Проверяет пересечение отрезков v1v2 и v3v4.
Смысл в том чтоб представить квадрат в виде отрезков. Для квадрата их будет четыре (: И по очереди проверить пересечение твоего отрезка и отрезков квадрата.
Vector2 - может быть любой класс, имеющий свойства x и y. Могу свой класс скинуть, там уже почти вся нужная математика описана
PS можно было спокойно написать эту функцию самостоятельно, всё что нужно для этого написано в посте 6