8.5.11 行程

本文介绍了一种基于对象已过行程来区分不同运动阶段的方法,并详细解释了如何通过编程实现这一过程,确保动画能够平滑地从一个阶段过渡到另一个阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    当以时长为出发点考察时,确定各运动阶段比较容易,只要比较当前计时器次数和个阶段分配时长的关系即可。而围绕速度考虑这个问题时,就必须引入一个新的变量:已过行程(past)。已过行程(past)描述的是对象已经走过路程的总和。通过比较已过行程和各个阶段的路程距离,就能区分甄别不同的运动阶段了。

         //ary_dist数组各项依次表示:三点距离总长,AB距离,BC距离,CA距离

if(past<=ary_dist[1]){

                   //处理运动第一阶段:A点到B

         }

         else if(past>ary_dist[1] && past<= (ary_dist[2]+ary_dist[1]))

{

                   //处理运动第一阶段:B点到C

         }

         else if(past> (ary_dist[2]+ary_dist[1]) && past<=ary_dist[0])

{

                   //处理运动第一阶段:C点到A

         }

注意:围绕时长编程时,当前计数器在重设定时器时被自动清零了。所以当定时器重启后,动画能正常重新开始。而在围绕速度编程的时候,判断的依据是已过行程(past)。必须在定时器重启时手工清零已过行程(past),保证动画可以重复运行。具体做法就是在计时器timerComplete事件的响应函数里,增加一行修正语句:

function animComplete(event:TimerEvent):void {

         event.target.reset();

         past=0;//手工清零

         event.target.start();

}

这样,当运动对象走完全部路程后,又能回到起始点,并继续新的动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值