Показать сообщение отдельно
Старый 15.10.2012, 10:47
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> но скорее всего сработает
для вертикальной точно не сработает

если с анализом нюансов не охота связываться, то можно таким 'шаманским' способом, типа пусть плеер сам и считает )
Код AS3:
public function Main():void
{
 
	trace (isPointOnLine(new Point(0, 0), new Point(100, 100), new Point(52, 50),1));//false
	trace (isPointOnLine(new Point(0, 0), new Point(100, 100), new Point(52, 50),10));//true
	trace (isPointOnLine(new Point(0, 0), new Point(100, 100), new Point(50, 50), 0));//true
}
 
private function isPointOnLine(linePointA:Point, linePointB:Point, point:Point, tol:Number=0):Boolean
{
	var tmp:Shape = new Shape();
	tmp.graphics.lineStyle(tol);
	tmp.graphics.moveTo(linePointA.x, linePointA.y);
	tmp.graphics.lineTo(linePointB.x, linePointB.y);
 
	addChild(tmp);
	var res:Boolean = tmp.hitTestPoint(point.x, point.y, true);
	removeChild(tmp);
	return res;
 
}