将旋转闪烁补间设置为最短距离as3?

时间:2012-12-11 03:47:47

标签: actionscript-3 flash air tween

我正在研究一个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);
            }
        }

2 个答案:

答案 0 :(得分:1)

Regular.easeOut应该执行上述行为。

有时,虽然有多个补间缓和,但flash甚至错过了最后一点。

因此,如果您必须使用缓出,请添加补间完成事件,其中您手动设置最终点。

否则使用None.easeNone

答案 1 :(得分:0)

你真的应该避免使用Flash内置的Tween引擎。它缓慢,臃肿,缺乏很多非常有用的东西

尝试使用TweenLite/TweenMax或更好,eaze都有内置的短轮播功能,就像你正面对的那样。 它们比使用默认的Tween引擎更快! (你可以看到here

您不仅可以对这种短轮换问题进行排序,而且您的应用程序会更快地使用其中一个: - )