Risolto....

Ho smembrato la classe e resa una semplice funzione onEnterFrame. Non è molto professionale ma purtroppo nemmeno sistemando a dovere la classe riuscivo a farla aggiornare.

codice:
_global.__maxspeed = 1; 
_global.__minscale = 30;
_global.__cx = 0;
_global.__cy = -50; 
_global.__wx = 25*_global.n_porte;
_global.__wy = 80; 
_global.__i = 0; 
_global.__clips = [];
_global.__m = Math;

function __firstClipPosition() 
{
	for(var a = 0, b = _global.n_porte; a < b; a++)
	{
		this['nmc'+a].scost = ((360 / b) / 2) + ((360 / b) * a);
	}
	__manager(1);
}
	
function __manager(acceleration) 
{
	for(var a = 0, b = _global.n_porte, sin = 0; a < b; a++) 
	{
		this['nmc'+a].scost = this['nmc'+a].scost + acceleration;
		sin =  _global.__m.sin(this['nmc'+a].scost * __m.PI / 180);
		this['nmc'+a].swapDepths(_global.__m.sin(this['nmc'+a].scost * _global.__m.PI / 180) * 20);
		this['nmc'+a]._x = (_global.__m.cos(this['nmc'+a].scost * _global.__m.PI / 180) * _global.__wx) + _global.__cx;	
		this['nmc'+a]._y = (sin * _global.__wy) + _global.__cy;
		this['nmc'+a]._xscale = this['nmc'+a]._yscale = 100 - _global.__minscale + _global.__minscale * sin;
	}
}
	
onEnterFrame = function() 
{
	acceleration = (_global.__maxspeed * (this._xmouse - _global.__cx)) / _global.__wx;
	if(acceleration > _global.__maxspeed) 
	{
		acceleration = _global.__maxspeed;
	}
	else if(acceleration < -_global.__maxspeed) 
	{
		acceleration = -_global.__maxspeed;
	}
	__manager(acceleration);
}

function rcStart() 
{
	__firstClipPosition();
}

for(i=0;i<_global.n_porte;i++)
{
	nmc.duplicateMovieClip("nmc"+i, i);
	this['nmc'+i].descrizione = _global['descrizione'+i];
	this['nmc'+i].img.loadMovie(_global['img'+i]);
	this['nmc'+i].nome.text  = _global['nome'+i];
}

rcStart();
nmc._visible = false;
stop();