以前没有使用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;
}
答案 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;
}