Предлагаю мой вариант реализации:

Код:
import flash.geom.Point;
var cooY1:Number = null; //координата Y точек
var cooX1:Number = null; //координата X точек
var i:Number = 0;//индекс имени клипов-точек
var nameMC:String = '';//имя клипа-точек
var beg_X:Number = 110;//начальный X построения кривой
var end_X:Number = 210;//конечный X построения кривой
var step:Number = 5; // шаг по X
var timePeriod:Number = 80; //временной период между прорисовками точек
var intervalID:Number = null;//идентификатор таймера
function laCourbe(a:Number, b:Number, c:Number, courbeColor:Number) {
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
var beg_Point:Point = equation_of_curve(beg_X,a,b,c);
container.moveTo(beg_Point.x,beg_Point.y);
cooX1=beg_X+step;
intervalID = setInterval(constrFunc,timePeriod,a,b,c,courbeColor);
}
function equation_of_curve(X:Number, a:Number, b:Number, c:Number):Point //функция изменения Y от X
{
return new Point(X,a*Math.pow(X, 2)+b*X+c);
}
function constrFunc(a:Number, b:Number, c:Number, courbeColor:Number)
{
cooY1 = equation_of_curve(cooX1,a,b,c).y;
nameMC = "point"+i;
//container.createEmptyMovieClip(nameMC,container.getNextHighestDepth());
container.attachMovie("point",nameMC,container.getNextHighestDepth());
container[nameMC]._x = cooX1;
container[nameMC]._y = cooY1;
container.lineStyle(1,courbeColor);
container.lineTo(cooX1,cooY1);
if (cooX1>end_X)
{
clearInterval(intervalID);
trace("Построение окончено");
}
i++;
cooX1+=step;
}
laCourbe(0.05,-20,2050,0xFF0000);
Преимущества:
1. работоспособность (линии отображены цветом courbeColor);
2. отсутствует или почти отсутствует избыточность кода, т.е нет излишних вычитаний, сложений, присвоений, инкрементов.
3. структурированность кода - математическая функция задающая закон изменения Y от X вынесена в отдельную функцию.