还真是这样,我定义了多个TWEEN的时候,有些TWEEN自动放到一半的时候就自己中止不放了,又得做代码上的修改优化。不过后来发现可能不是这个原因,做的东西占系统资源应该不大。在网上查了查以后,发现也有人出现这样的问题—— http://bbs.actionscript3.cn/thread-5254-1-1.html http://bbs.actionscript3.cn/thread-6132-1-1.html 最后得出的结论是—— FLASH自带的TWEEN类,偶尔会出莫名其妙的问题,原因往往是因为tween是在函数里声明的,所以会被垃圾回收站回收。回收后Tween还没有运动完,结果就停那不动了。
解决办法: 1: 声明为类变量就行了。在函数的外面定义好Tween变量。(将它提升为private的, 跳出那个函数的管辖),而不是在函数内部,这样不会回收。 2: 方法1只能暂时解决一些问题,因为你用的Tween是用的time模式, 这种模式当cpu执行构造一个超级肥的类时,这个Tween的时间在走, 但缓动得不到执行(没CPU嘛), 时间一到,Tween停止….但位置还没到位…..绝对能解决Tween没执行完就被干掉的问题的是: 不用time为true的模式,而用帧模式,至少我是这么解决问题的。 3: 或者可以找出Tween这个类,把这句_mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); 4: 大家推荐的不用FLASH自带的TWEEN类,网上缓动的类目前还有Tweener和TweenLite。其中TweenLite推荐的人最多,说效率高,而且一次改变若干属性,方便。下载及教程地址 http://blog.greensock.com/tweenliteas2/ |
Lifestream
|