Всё-таки еще раз подниму этот вопрос. Есть вот такой простой пример:
http://www.knod.ru/wave.swf
Вот код, который рисует эту волну:

Код:
// Объявляю переменные
var screenHeight: Number;
var steps: Number;
var step: Number;
var i: Number;
var X = Array(), Y = Array();
var dX: Number;
// Задаю начальные значения переменных
screenHeight = 400;
steps = 13;
step = 50;
dX= 2;
// Расчет параметров волны
for(i = 0; i <= steps; i++){
Y[i] = screenHeight - 20 - Math.random() * step;
X[i] = i * step - step;
}
// Отрисовка волны
function wave()
{
clear();
for(i = 0; i <= steps; i++)X[i] -= dX;
lineStyle (4, "0x000000", 100);
moveTo(-step, screenHeight);
beginFill("0x0000FF");
lineTo(X[0], Y[0]);
for(i = 0; i <= steps - 1; i++)curveTo(X[i], Y[i], (X[i+1] + X[i]) / 2, (Y[i+1] + Y[i]) / 2);
lineTo(X[steps], screenHeight);
endFill();
// Если координата Х уехала за пределы экрана, сдвигаю все координаты на 1 вправо
// и генерирую новую крайнюю правую координату
if(X[0] <= -10 )
{
for(i = 1; i <= steps; i++)
{
X[i - 1] = X[i];
Y[i - 1] = Y[i];
}
Y[steps] = screenHeight - 20 - Math.random() * step * 2;
X[steps] = X[steps - 1] + step;
}
}
// main
setInterval(wave, 10);
С таким сетинтервалом отрисовка идет со скоростью 100 кадров в секунду, но при этом все-равно наблюдается раздвоение "волны", которое особенно заметно на линиях которые близки к перпендикуляру. Есть ли какие-то средства для борьбы с этим эффектом?