在某个点结束之前在舞台上移动(做一整圈)

时间:2014-04-27 15:40:50

标签: actionscript-3

如何制作我点击的对象,开始在舞台周围以圆圈(2,3)移动 在到达其最终位置之前。在此图片中enter image description here

我发现它的方式可能是这样的:

private function onClick( ev:MouseEvent ):void
    {
        var currentObj:Sprite = ev.currentTarget as Sprite;

        TweenLite.to(currentObj, 1, {x:first_X, y:first_Y, onComplete:goToPosition2 });

        function goToPosition2():void
        {
            TweenLite.to(currentObj, 1, {x:secontd_X, y:second_Y, onComplete:goToPosition3 });
        }

        function goToPosition3():void
        {
            TweenLite.to(currentObj, 1, {x:third_X, y:third_Y, onComplete:goToPosition4 });
        }
        ..
        ..
        .
        .
        .
        //and so on and so on

    }

然而我不知何故觉得这是非常错误的做法。

2 个答案:

答案 0 :(得分:1)

有点有趣,另一种解决方法可能是创建一个动画片段,其中包含一个跟随运动路径的“手柄”剪辑。将此称为“驱动程序剪辑”。

然后要获得一个形状/另一个moiveclip以跟随它,启动在第1帧播放的驱动程序剪辑并添加一个事件处理程序。在事件处理程序中,在每个帧上同步您想要的对象的x和y到驱动程序剪辑的句柄剪辑里面。还可以将该句柄剪辑的可见性设置为false以隐藏它。当驱动程序剪辑到达结束帧时,您可以删除事件侦听器,并且形状将处于其完成位置。

此方法适用于非常不规则的形状,在手动编写代码时需要很长时间(假设您正在使用flash ide)。

答案 1 :(得分:0)

简单方法:将对象包含在其外围附近的父MovieClip中。单击时,旋转父级并增加其比例,以便您的对象跟踪螺旋路径。