8.7.5 内建伸缩方法

 

  利用Matrix类内建的scale()方法,可以快速实现一个物体的伸缩和映射。scale()方法的官方函数说明为:

Matrix.scale()

scale ()方法

public function scale(sx:Number sy:Number):void

Player version Flash Player 9

作用:

对矩阵对象应用缩放变形。在x轴将乘以sx,同时在y轴乘以sy

参数:

 sx:Number x轴方向的倍数

 sy:Number y轴方向的倍数

sx或者sy被设置为负值时,显示对象将被在反方向拉伸。利用这一点实现显示对象的映射。

(1)新建AS3项目例8-9,舞台大小550×400,帧率20。在舞台上建立空MovieClip对象flipobjboxx=275y=200,在flipobjbox内部,建立矩形MovieClip子对象flipObj,宽100,高60x=-50y=50。依照图布置:

其对象关系请参考图

在代码编辑器中,输入以下代码:

var transtimer:Timer = new Timer(50 150);

transtimer.addEventListener("timer" transtimerHandler);

transtimer.addEventListener("timerComplete" transComplete);

//拷贝matrix

var objMatrix:Matrix=flipobjbox.flipObj.transform.matrix;

var flipstep:Number=Math.PI/2;

//启动定时器

transtimer.start();

//实现反转

function flip_V_0():void

{

flipstep+=0.1;

var temp:Matrix=objMatrix.clone();

temp.scale(1Math.sin(flipstep));

flipobjbox.flipObj.transform.matrix=temp;

}

 

//定时器触发响应

function transtimerHandler(event:TimerEvent):void

{

         flip_V_0();//调用,内建反转

}

//重设定时器

function transComplete(event:TimerEvent):void

{

transtimer.reset();

transtimer.start();

}

运行此程序,显示对象flipObj围绕水平中轴线伸缩映射,其形态如同在三维空间的旋转。执行效果如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值