Salve a tutti, ho un problema che girandoci girandoci mi sta facendo diventare matto!

Ho esteso con prototype la classe mc per lavorare in 3d, quindi asse x, y, z.
Tutto funziona correttamente, tranne il calcolo del depth basato sull'asse Z.
Questo è il codice che eseguo:

codice:
MovieClip.prototype.commit = function()
{
	var cx = this.x - _global.Camera.x;
	var cy = this.y - _global.Camera.y;
	var cz = this.z - _global.Camera.z;
	var tx, ty, tz; // temporary x, y and z variables
	
	// rotation around x axis
	var angle = _global.Camera.rotation;
	tx = Math.cos(angle)*cx - Math.sin(angle)*cz;
	tz = Math.sin(angle)*cx + Math.cos(angle)*cz;
	cx = tx; cz = tz;

	// rotation around y axis
	angle = _global.Camera.upAngle;
	ty = Math.cos(angle)*cy - Math.sin(angle)*cz;
	tz = Math.sin(angle)*cy + Math.cos(angle)*cz;
	cy = ty; cz = tz;
	
	if (this.z > _global.Camera.nearView && this.z < _global.Camera.farView)
	{
		if (!this._visible) this._visible = true;
		var scaleRatio = _global.Camera.focalLength / ( _global.Camera.focalLength + this.z);
		this._x = cx * scaleRatio;
		this._y = cy * scaleRatio;
		this._xscale = this._yscale = 100 * scaleRatio;
		this.swapDepths(-Math.round(this.z));
	}
	else this._visible = false;
};
E questo è il tracciamento che ottengo:

--------------------------------------
Name:10.swf.16
x:-199 y:0 z:106
depth:17 z-inv:-106
--------------------------------------

Il depth del tracciamento, è quello che ottengo dalla mia "Scena3D" quando attacco le clip la prima volta nella scena:

var myClip = myScreen.attachMovie(Clips[a], Clips[a]+"."+a, a+);

dopo di che il resto è storia, il depth non cambia più.

Dal "Debug", se così si può definire quello di flash, ho notato che anche se essendoci gli elementi in scena, myScreen, che è una semplice clip, non ha le clips al suo interno e non sono nemmeno all'esterno, pur essendo attaccate, modificabili e tracciabili.

Qualcuno ha mai avuto problemi simili?