AS3 - 在整数上使用Tween?

时间:2012-01-05 13:19:38

标签: actionscript-3 flex air

以前没有使用Tween功能,所以我想要一些帮助。

我想在两个整数之间进行补间。

实施例: 我缓冲360帧(图像)。

我想跳到第100帧(从第1帧开始),但我想使用easy来让它看起来更好。

我需要的是补间我将用于显示的当前图像的整数。


到目前为止一直很好,但我没有得到如何在补间中更新我的图像:

        public function timerEvent(event:TimerEvent):void{
            TweenLite.to(this, 2, {_currentFrame: 50, ease:Strong.easeOut}); 

            if (_currentFrame>=358) _currentFrame -= 359;
            if (_currentFrame<0) _currentFrame += 359;
            var myBitmap:Bitmap = new Bitmap(buffer[_currentFrame+1]);
            myBitmap.smoothing = true;
            imageBuffer.data = myBitmap;
        }

1 个答案:

答案 0 :(得分:2)

我会认真推荐使用Greensock的TweenLite和TweenMax库而不是内置的Tweening函数。

http://www.greensock.com/tweenmax/

这些的优点是你可以补间对象的任何数字属性,并应用缓动,你甚至可以使用TweenMax中内置的Frames插件直接补间MovieClip的帧:

import com.greensock.TweenMax;
import com.greensock.easing.Strong;

TweenMax.to(this,2,{frame:100,ease:Strong.easeOut});

To Tween计数器值同样简单,因为它不需要Frames插件,你可以使用更轻的TweenLite:

import com.greensock.TweenLite;
import com.greensock.easing.Strong;

var counter:int = 0;

TweenLite.to(this,2,{counter:100,ease:Strong.easeOut});

修改以包含新代码

在补间运行时,您可以捕获更新事件,该事件允许您对参数的当前值执行操作。然后你可以做这样的事情:

TweenLite.to(this, 2, {_currentFrame: 50, ease:Strong.easeOut, onUpdate:updateCallback}); 

function updateCallback():void
{
    var myBitmap:Bitmap = new Bitmap(buffer[_currentFrame+1]); 
    myBitmap.smoothing = true; 
    imageBuffer.data = myBitmap;
}