package howtodo {
import flash.events.Event;
import howtodo.view.DragPoint;
public class Step06PointOnBezier extends BezierUsage {
private static const DESCRIPTION:String = "Distance by curve
uniform motion";
private const point:DragPoint = new DragPoint();
private var distance:Number = 0;
/**
* Получение точки по дистанции по кривой
* @example
*
**/
public function Step06PointOnBezier () {
super();
}
override protected function init():void {
super.init();
initDescription(DESCRIPTION);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
addChild(point);
redraw();
}
protected function enterFrameHandler(event:Event=undefined):void {
distance+=3;
updatePosition();
}
protected function updatePosition():void {
var time:Number = bezier.getTimeByDistance(distance%bezier.length);
point.position = bezier.getPoint(time);
}
override protected function onPointMoved(event:Event=undefined):void {
redraw();
updatePosition();
}
private function redraw ():void {
graphics.clear();
graphics.lineStyle(0, 0xFF0000, 1);
drawBezier(bezier);
}
}
}