граждане!
опять вы упёрлись в синусы-косинусы... не забывайте о специфике материала, с которым работаете. многие беды флэшовых работ происходят от того, что люди делают в них вещи неспецифичными для флэша способами.
что я предлагаю:

Код:
var radius = 200;
var amp = 20;
var speed = 1;
// количество завитков за один оборот на 360 градусов
var sin_number = 20;
//
this.createEmptyMovieClip("curve", 0);
curve._x = 200;
curve._y = 200;
curve.speed = speed;
//
curve.createEmptyMovieClip("plotter", 0);
curve.plotter.lineStyle(10, 0, 100);
curve.plotter.lineTo(1, 0);
curve.plotter.radius = radius;
curve.plotter.angle = 0;
curve.plotter.amp = amp;
curve.plotter.sin_number = sin_number;
//
curve.plotter.onEnterFrame = function()
{
// вот тут синусоида. только по иксу.
this._x = this.radius+Math.sin(this.angle)*this.amp;
this.angle += (2*Math.PI/360)*this.sin_number;
};
//
curve.onEnterFrame = function()
{
// а вот тут движение по дуге.
// в данном случае в качестве дуги взята окружность.
var point = {x:this.plotter._x, y:this.plotter._y};
this.localToGlobal(point);
_root.lineTo(point.x, point.y);
//
this._rotation += this.speed;
};
//
lineStyle(2, 0xFF0000, 50);
moveTo(curve._x+radius, curve._y);
у меня ушло на этот скрипт 15 минут. из них половина - на придумывание.
если нужна не окружность а какая-то хитрая дуга, то путей несколько:
1. двигать внешний клип программно по параболе/еще какой-то формуле.
2. двигать внешний клип по гайду, нарисованному ручками (сами понимаете, чем это удобно и чем не удобно)
3. взять класс
Ивана Дембицкого - Path -- и с помощью него двигать внешний клип программно по любой кривой безье, как угодно.