在之前制作的版本,由于没有引入缓冲的效果,看起来效果并不好,这一次修改一下,把之前的改造一下。有了缓冲的帮助,效果完善了很多
但是还是有内存的一些问题,让人觉得不爽。
改进办法,对每一张图片加入Event。EnterFrame 事件,每一帧刷新,这样的好处使动画变得连贯,但是不好的地方会导致内存使用过多
使用的时候需要特别小心。这次加入补间引擎结合,发觉效果真的不错。使用Tweener 作为补间使用,可以自己去下载测试。
基础类并没有改变
对RollPhoto进行改造。这个只是对X轴生效,暂时没有考虑到Y轴时候,日后会进行第四版本改造,离实用性还是差一定距离,日后有能力会继续延伸。
在这里类,加入补间应用。
这次代码和上次没有发生很多改变,仅仅只是改变了RollPhoto类。
myphoto.ActionListener(array,-array[0].height/2);//初始化监听
只是添加了这个。
制作这个demo过程:先外部加载图片,然后采取数组和容器管理,对每一张实现帧循环,这样动画会流畅很多,带来效果同时,如果不释放掉内存就引起内存不断增大,因此目前这个demo 只能是看,实用还没达到。
其他可以参考flash特效原理:图片滑动放大效果(1)(2)
在检测碰撞的时候,缓冲动画会一直在计算,导致内存增大其中原因之一。在设计的时候,有意在不监听的时候去除监听事件,这样会处理一部分内存,不知道有无更加好方案,或者这个设计方案一开始就存在缺陷。真的暂时还没解决到。
下面是一些代码清单,有兴趣可以玩啊。不过内存吃掉你的机器不要怪我 哈哈
下载第三版本测试demo:
存在性能问题:依旧有待去解决
第二种办法:内存会减少一些,只实现一个EnterFrame事件
配合MouseEvent.MOUSE_MOVE 事件实现。可以自己测试一下。
为每一张图片都安装上EnterFrame 事件,他可以在每一帧刷新的时候执行,呈现同步的过程
优点:动画效果更加好,缺点内存不断消耗,进行一些不好的运算
只是在一帧的情况使用for循环。对每一张图片进行缩放和位置定位,会出现到先后的顺序。
function Run(e:Event):void
{
for(i)
{
//执行行为
}
}
这种情况出现是动画不流畅,但是内存没有那么大。
总的来讲,这个demo 还没算好,离应用还是有很多距离。内存使用问题没解决好。盼望日后会继续跟踪这个问题。