A闪的 BLOG 技术与人文
很老很老的一个小玩意了,就是可以方便的动态改变元件的注册点位置。当然只是用了偏移量这样简单的原理。代码也非常简单不是很多,在这里贴一下吧!
package
{
import flash.display.DisplayObject
import flash.geom.Point
//动态设置注册点
public class DynamicRegistration
{
//需更改的注册点位置
private var regpoint:Point
//更改注册的显示对象
private var target:DisplayObject
function DynamicRegistration(target:DisplayObject,regpoint:Point)
{
this.target=target
this.regpoint=regpoint
}
//设置显示对象的属性
public function flush(prop:String,value:Number):void
{
var mc=this.target
//转换为全局坐标
var A:Point=mc.parent.globalToLocal(mc.localToGlobal(regpoint))
if(prop==“x”||prop==“y”)
{
mc[prop]=value-regpoint[prop]
}else
{
mc[prop]=value
//执行旋转等属性后,再重新计算全局坐标
var B:Point=mc.parent.globalToLocal(mc.localToGlobal(regpoint))
//把注册点从B点移到A点
mc.x+=A.x-B.x
mc.y+=A.y-B.y
}
}
}
}