flash as3.0 指定点旋转

2025-01-04 06:29:05
推荐回答(2个)
回答1:

首先要明白啥是注册点,注册点才是元件控制的中心点,所有的移动旋转都是以注册点为中心的。所以你绘制的时候也要以注册点为中心,而一个元件的注册点在哪呢?你创建一个新元件,看一下就知道了,默认是0,0点,那么你要在让画出来的线在150处旋转,自然要将中心点绘制在150,150了,假如你的线的长度是300,那就是绘制的起点自然就是从-300/2,-150开始绘制了,这样就能保证从150,150为中心点旋转。

回答2:

var my_mc:Sprite = new Sprite();
my_mc.x = -150;
my_mc.y = -150;
my_mc.graphics.lineStyle(1,0xff0000);
my_mc.graphics.moveTo(150,50);
my_mc.graphics.lineTo(150,150);

var vContainer:Sprite = new Sprite();
vContainer.x = 300;
vContainer.y = 300;
vContainer.addChild( my_mc );
addChild(vContainer);
addEventListener(Event.ENTER_FRAME, my_e);

function my_e(e:Event):void{
vContainer.rotation += 1;
}
把my_mc在放到一个新的容器里 锚点设置到中间,就可以了。
还有转动不用弄个变量i控制。直接 +=1 就可以了。超过360,rotation会自己处理