修改注册点 AS3


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

使用方法:

//使用方法;
import DynamicRegistration;
var reg:DynamicRegistration=new DynamicRegistration(mc,new Point(100,50));
stage.addEventListener(MouseEvent.CLICK,setPoint);
p_mc.x=mc.x+100;
p_mc.y=mc.y+50;
var speed=1;
mc.rotation=5;
function setPoint(e:MouseEvent):void {
 speed+=.1;
 reg.flush("scaleX",speed);
}

优质内容筛选与推荐>>
1、Shell 自动化部署免密登录
2、去美国考托福还是雅思?雅思更简单实用
3、ERwin 连接 mysql
4、使用 cAdvisor 主机上的容器
5、Maintaining Your Signing Identities and Certificates 维护你的签名标识和证书


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn