Link

首页

Tweet

书单

about me

Command

友情链接

Category

动态改变元件注册点位置


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

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