我正在研究一个adobe air interactive table项目,我正在努力补充一些轮换。在大多数情况下它工作得很好,但偶尔它会绕着版本转动,只是旋转一点到另一个方向。有没有人能够在闪光补间中防止这种情况发生?
我的代码片段:
var rotatePos:Number;
if (event.rotation > 180) { rotatePos = event.rotation - 360; } else { rotatePos = event.rotation; }
var rotateDifference:Number = Math.abs(Math.abs(rotatePos) - Math.abs(Number(rotationCurrent[tempCircleNumber])));
if ( rotateDifference > 4 && rotateDifference < 60) {
rotateTheFiducial();
} else if ( rotateDifference > 100 ) {
trace("too far, ignore : " + rotateDifference);
}
function rotateTheFiducial():void
{
try
{
var cardTweenRotation:Tween = new Tween(MovieClip(fiducialArray[tempCircleNumber]), "rotation", Regular.easeOut, Number(rotationCurrent[tempCircleNumber]), rotatePos, .2, true);
rotationCurrent[tempCircleNumber] = rotatePos;
}
catch (e:Error)
{
trace(fiducialId + " : Rotate Error : " + e);
}
}
答案 0 :(得分:1)
Regular.easeOut应该执行上述行为。
有时,虽然有多个补间缓和,但flash甚至错过了最后一点。
因此,如果您必须使用缓出,请添加补间完成事件,其中您手动设置最终点。
否则使用None.easeNone
答案 1 :(得分:0)
你真的应该避免使用Flash内置的Tween引擎。它缓慢,臃肿,缺乏很多非常有用的东西。
尝试使用TweenLite/TweenMax或更好,eaze,都有内置的短轮播功能,就像你正面对的那样。 它们比使用默认的Tween引擎更快! (你可以看到here)
您不仅可以对这种短轮换问题进行排序,而且您的应用程序会更快地使用其中一个: - )