Perhaps this formula will help:
function applyPerspective(pMC:MovieClip, x:Number, y:Number):Void
{
var centerX:Number = 200; // center of 2D-scene (X)
var centerY:Number = 200; // center of 2D-scene (Y)
var distCenter:Number = 60; // distance of the perspective plan to
the center of 3D world
var lensFocal:Number = 200; // perspective focal
var cameraAngle:Number = -45; // x-angle of camera
// 3D coordinates
cameraAngle *= Math.PI/180; // convert to radians
var z:Number = distCenter + y * Math.sin(cameraAngle);
y *= Math.cos(cameraAngle);
var s:Number = lensFocal/ ( lensFocal + z); // ratio
// 2D coordinates & render:
pMC._x = centerX + s * x;
pMC._y = centerY + s * y;
pMC._xscale = pMC._yscale = s * 100; // TODO: ajust scale
pMC.swapDepths(int(2000 + 1000*pMC._y + pMC._x)); // a simple z-sort
formula
}
usage (in your case):
applyPerspective(mc, radius*Math.cos(mc.angle), radius*Math.sin(mc.angle));
You will probably have to try-and-guess by adjusting initial setup
variables.
You can achieve nice 3D effect by connecting some property (example:
cameraAngle) with _ymouse.
--
Olivier Besson (gludion) - (33 1) 44 64 78 99
http://www.gludion.com
http://blog.gludion.com
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders