动态改变元件注册点位置

很老很老的一个小玩意了,就是可以方便的动态改变元件的注册点位置。当然只是用了偏移量这样简单的原理。代码也非常简单不是很多,在这里贴一下吧!

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 } } } }