我的仪表看起来很棒,针头旋转了一圈。如何为其添加缓动?
仪表是根据计时器事件构建的。我希望针在最后反弹。我不需要只添加一个变量,而是需要控制它何时发生,这样我就可以用动画来调整它。
alt text http://www.ashcraftband.com/myspace/videodnd/icon8.jpg
var timer:Timer = new Timer(20, 30);//tick 200, 36<br>
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, startAgain);
timer.start();
function startAgain($evt:TimerEvent):void {
timer.reset();
timer.start();
}
function onTimer($evt:TimerEvent):void {
watch.hand.rotation = 30 + timer.currentCount;//tick 5
}
//the "tick" may mess up the effect
import fl.transitions.Tween;
import fl.transitions.easing.*;
var timer:Timer = new Timer(20, 30);//tick 200, 36
var startValue:Number = watch.hand.rotation;
var finishValue:Number = 33;//400
var duration:Number = 222;//3
var myTween:Tween = new Tween(watch.hand, "rotation", Elastic.easeOut, startValue, finishValue, duration, false);//true
myTween.looping = true;
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, startAgain);
timer.start();
function startAgain($evt:TimerEvent):void {
timer.reset();
timer.start();
}
function onTimer($evt:TimerEvent):void {
watch.hand.rotation = 30 + timer.currentCount;//tick 5
//watch.x =+ 66;
}
实验
我的项目需要更好地理解计时器事件和补间。如果我可以让这个动画做的事情,我想我可以更好地理解如何传递函数调用和设置事件。
答案 0 :(得分:1)
我会为此使用另一个补间引擎。查看tweener或gtween。使动画更容易,并且可以在补间完成动画时调用函数。您可以创建自定义补间并调整所需的反弹次数。使用flash内置的补间引擎可能有办法做到这一点,但不知道如何。
答案 1 :(得分:1)