今天网上有人求助,如何制作可视组件围绕中心进行旋转的效果。查阅相关资料。实现这样的效果,需要使用Math类。围绕中心旋转其实和绘制圆形是同样的方法。学过三角函数的都知道,一个角度的正弦函数乘上斜边就是角的对边的长度,绘制的坐标上就是某个点的y坐标值,同理可以求出这个点的x坐标值。当这个角不停变化时,如果斜边长度不变的话,把这些点连起来就是一个圆了。
在这个实例中,斜边的长度由一个Slider组件实例控制,而圆心是单击时的鼠标位置决定的。
实例代码:
var angle:<a href=http://www.flashabc.net/catalog.asptags=Number>Number</a> = 0;
var pd:Boolean = false;
var mx:Number
var my:Number
var sp:Sprite=new Sprite()
function fl_EnterFrameHandler(event:Event):void
{
mc.x = mx + Math.cos(angle) * slider.value;
mc.y = my + Math.sin(angle) * slider.value;
angle += .1;
}
stage.addEvent<a href=http://www.flashabc.net/catalog.asptags=List>List</a>ener(<a href=http://www.flashabc.net/catalog.asptags=MouseEvent>MouseEvent</a>.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
mx=mouseX
my=mouseY
sp.graphics.clear()
sp.graphics.lineStyle(1)
sp.graphics.beginFill(0x00ff00)
sp.graphics.drawCircle(mx,my,2)
sp.graphics.endFill()
addChild(sp)
}