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); } } }