经常听人问起怎么修改注册点 ,网上的一些答案也说的很不清楚
下面是解决之道:
/*
总结: 有时候我要旋转某个对象 ,直接旋转时,由于注册点在左上角,因而该旋转不是我们要的绕中间点的旋转
要想绕显示对象的中心点转动 我们可以再新建一个容器,比如sprite 再将要旋转的对象加入sprite中,通过设置要旋转的
对象的坐标在父容器sprite的注册点上 ,然后旋转父容器即可:
再就是只要涉及到3D转换时,通过设置透视类:PerspectiveProjection 能更够达到更好的效果
下面是一个例子: Shuttle 是一张图片的链接名
*/
var bitmap:Bitmap=new Bitmap(new Shuttle(200,200));
var sprite:Sprite = new Sprite();//父容器
addChild(sprite);
stage.frameRate=5;
bitmap.x=-bitmap.width/2;
bitmap.y=-bitmap.height/2
bitmap.z=0;
//下面是进行微小缩放,原因在这个链接中 : http://blog.csdn.net/hu36978/archive/2009/10/21/4707339.aspx
bitmap.scaleX=bitmap.width/(bitmap.width+1);
bitmap.scaleY=bitmap.height/(bitmap.height+1);
sprite.addChild(bitmap);
sprite.x=stage.stageWidth/2-bitmap.width/2;
sprite.y=stage.stageHeight/2-bitmap.height/2;
//创建三维透视:
var pp:PerspectiveProjection=new PerspectiveProjection();
pp.fieldOfView=57;//介于三维的角度 范围是(0,180)
pp.projectionCenter=new Point(bitmap.width/2,bitmap.height/2);
bitmap.transform.perspectiveProjection=pp;
addEventListener(Event.ENTER_FRAME,onIt);
function onIt(e:Event){
sprite.rotationY+=10
}