这是一个动态改变注册点的类package {

//动态改变注册点类

import flash.display.DisplayObject;

import flash.geom.Point;

//动态设置注册点

public class DynamicRegistration {

//需更改的注册点位置

private var regpoint:Point;

//更改注册的显示对象

private var target:DisplayObject;

private var Height:Number;

private var Width:Number;

//首先要确定初始状态

public function DynamicRegistration(target:DisplayObject,regpoint:Point,iWidth:Number=320,iHeight:Number=240) {

Width=iWidth;

Height=iHeight;

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 if (prop=="scaleX" || prop=="scaleY") {

if (mc[prop]>value) {

//放大过程

mc.x+=((Width*(value+0.1))-(Width*value))/4;

mc.y+=((Height*(value+0.1))-(Height*value))/4;

} else {

//缩小过程

mc.x-=((Width*value)-(Width*(value-0.1)))/4;

mc.y-=((Height*value)-(Height*(value-0.1)))/4;

}

mc[prop]=value;

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

}

}

}
}
  
用法如下:
  在舞台上放个mc、btn、btn2package{

import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.system.fscommand;

public class Test extends MovieClip{
  
  private var reg:DynamicRegistration;
  private var speed:Number=1;
  
  public function Test(){
   reg=new DynamicRegistration(mc,new Point(mc.width/2,mc.height/2),mc.width,mc.height);
   btn.addEventListener(MouseEvent.CLICK,clickHandler);
   btn2.addEventListener(MouseEvent.CLICK,lessenHandler);
  }
  
  private function clickHandler(e:MouseEvent):void{
   //mc.scaleX+=0.2;
   //mc.scaleY+=0.2;
   speed+=0.2;
            reg.flush("scaleX",speed); 
            reg.flush("scaleY",speed);
  }
  
  private function lessenHandler(e:MouseEvent):void{
   speed-=0.2;
            reg.flush("scaleX",speed); 
            reg.flush("scaleY",speed);
   //mc.scaleX-=0.2;
   //mc.scaleY-=0.2;
  }
}
}

flash动态改变注册点相关推荐

  1. 移动端 = 动态改变头部透明度

    // 利用函数自执行 可以避免全局变量的污染,让代码模块化 // 加分号的目的是为了代码合并的时候避免报错 ;(function(){//需求:在滚动的时候动态改变jd-header的透明度//思路: ...

  2. Android 动态改变桌面图标

    其实很简单,利用 AndroidManifest.xml 文件中的 <activity-alias> 标签即可实现. <activity-alias> 介绍 大家知道,对于 A ...

  3. C# 设计时动态改变实体在PropertyGrid中显示出来的属性

    方法一: /// <summary>/// 实体属性处理/// </summary>public class PropertyHandle{#region 反射控制只读.可见属 ...

  4. 使用CAShapeLayer实现一个音量大小动态改变的控件

    一.案例演示 对于实时显示语音音量大小的需求,发现很多人的实现方式通过预放置多张图进行切换进行完成的.这样的处理,不但会浪费App的资源存储空间,而且效率也不高.对于符合某一定规律动态改变的图形,我们 ...

  5. uniapp、vue,vuex中state改变,getters不动态改变的完美解决方案!

    uniapp.vue,vuex中state改变,getters不动态改变的完美解决方案! 参考文章: (1)uniapp.vue,vuex中state改变,getters不动态改变的完美解决方案! ( ...

  6. 解决javascript动态改变img的src属性图片不显示问题

    解决javascript动态改变img的src属性图片不显示问题 参考文章: (1)解决javascript动态改变img的src属性图片不显示问题 (2)https://www.cnblogs.co ...

  7. 【Android 进程保活】oom_adj 值 ( oom_adj 值对应的进程优先级 | oom_adj 值动态改变 | 进程保活优化方向 )

    文章目录 一.oom_adj 值对应的进程优先级 二.oom_adj 值动态改变 1.正常运行时的 oom_adj 值 2.按下 Home 键后的 oom_adj 值 3.按下回退键后的 oom_ad ...

  8. WEUI picker组件无法js动态改变选项

    功能需求 设备号和摄像头都可以下拉选择,但是具体的摄像头下拉选项是根据设备号而定的.如下图,尾号为352的设备号只有前置摄像头,尾号为657的设备号前置和后置摄像头都有. 问题说明 一般情况下,这个需 ...

  9. js动态改变下拉菜单内容示例 .

    <HTML><HEAD><TITLE>动态改变下拉菜单内容示例</TITLE></HEAD><SCRIPT LANGUAGE=java ...

最新文章

  1. 英雄联盟诺手又回来了,国服诺手在上单,可谓一夫当关,万夫莫开
  2. 这篇Redis文章,图灵看了都说好
  3. SQL Server 中关于EXCEPT和INTERSECT的使用方法
  4. java 数据库操作教程_数据库基本操作:增删改查及联表操作
  5. mfa助听器设备能否在android,助听器的蓝牙功能到底有什么用,购买的价格,以及购买时要注意什么等问题...
  6. 单片机汉字点阵c语言程序,51单片机C语言多种点阵屏驱动程序(开发软件为keil C...
  7. 嗯嗯------摘抄
  8. JavaScript的封装方法
  9. 基于LDC1000的自动循迹小车
  10. coherence mysql_Coherence Step by Step 第三篇 缓存(二) 配置(翻译)
  11. eclipse简单的中英文切换,觉大多数的版本都可以
  12. centos7挂载ntfs文件系统_CentOS7挂载NTFS格式的硬盘
  13. excel 职位分析
  14. 如何撤回已发送的邮件?邮件撤回成功后对方还能看到吗
  15. 如何下载网上只能看不能下载的PPT文件
  16. UFS发生命令超时处理流程
  17. mysql按时间段统计_mysql按照时间段内 每天统计
  18. 再探矩阵求逆引理 : Woodbury恒等式的证明
  19. RGB565,RGB8888等相关
  20. aso优化师是什么_【aso优化师赵星凯】简述为什么要做aso?

热门文章

  1. 第二周python作业——字符串、字典、列表
  2. iOS 仿QQ录音以及振幅动画实现
  3. 开源布道师适兕访谈录
  4. 对话Roadstar投资人:一家自动驾驶公司之死(二)...
  5. 2022年四川最新消防设施操作员模拟题库及答案
  6. 多核编程指南(六)---进程间通信(三)
  7. Python开发之pandas行和列的获取
  8. 随心所欲的“四舍五入” 之 ROUND函数如何使用?
  9. Windows下TinyOS安装和测试步骤
  10. java实现四则运算应用(基于控制台)