·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0处理元件注册点的位置源代码示例

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

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

  1. package   
  2. {  
  3.  import flash.display.DisplayObject  
  4.  import flash.geom.Point  
  5.  //极酷播放器:动态设置注册点  
  6.  public class DynamicRegistration  
  7.  {  
  8.   //需更改的注册点位置  
  9.   private var regpoint:Point  
  10.   //更改注册的显示对象  
  11.   private var target:DisplayObject  
  12.   function DynamicRegistration(target:DisplayObject,regpoint:Point)  
  13.   {  
  14.    this.target=target  
  15.    this.regpoint=regpoint  
  16.   }  
  17.     
  18.   //设置显示对象的属性  
  19.   public function flush(prop:String,value:Number):void  
  20.   {  
  21.    var mc=this.target  
  22.    //转换为全局坐标  
  23.    var A:Point=mc.parent.globalToLocal(mc.localToGlobal(regpoint))     
  24.    if(prop=="x"||prop=="y")  
  25.    {  
  26.     mc[prop]=value-regpoint[prop]      
  27.    }else  
  28.    {  
  29.     mc[prop]=value  
  30.     //执行旋转等属性后,再重新计算全局坐标  
  31.     var B:Point=mc.parent.globalToLocal(mc.localToGlobal(regpoint))  
  32.     //把注册点从B点移到A点  
  33.     mc.x+=A.x-B.x  
  34.     mc.y+=A.y-B.y  
  35.    }  
  36.   }  
  37.  }  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器