Flash 如何通过在坐标中单击按钮来移动电影剪辑

Flash 如何通过在坐标中单击按钮来移动电影剪辑,flash,loops,actionscript-2,coordinates,game-physics,Flash,Loops,Actionscript 2,Coordinates,Game Physics,我在AS2中遇到了一个问题,我正在用flash制作一个游戏,通过点击一个按钮,你应该能够将一个电影剪辑向上移动。这里的问题是我知道怎么做: on(press){ example._y-=10; } 但是我想逐渐地把它向上移动,一个坐标接一个坐标,直到它达到10,给它一点动画效果。我也不想要任何动作,因为电影剪辑已经和其他东西共享代码,所以不要让它变得复杂。我尝试了循环,但效果不太好,下面是代码: on (press) { var i = 1; while (i <

我在AS2中遇到了一个问题,我正在用flash制作一个游戏,通过点击一个按钮,你应该能够将一个电影剪辑向上移动。这里的问题是我知道怎么做:

    on(press){
example._y-=10;
}
但是我想逐渐地把它向上移动,一个坐标接一个坐标,直到它达到10,给它一点动画效果。我也不想要任何动作,因为电影剪辑已经和其他东西共享代码,所以不要让它变得复杂。我尝试了循环,但效果不太好,下面是代码:

on (press) {

    var i = 1;
    while (i < 10)
    {
        _root.example._y-=1;
        i++;
    }
}
打开(按){
var i=1;
而(i<10)
{
_root.example._y-=1;
i++;
}
}
实际上我不擅长循环,我只是把它从网上删除了。所以,也许你可以帮助我纠正循环代码,或者你可以帮助我学习其他技术,但不管怎样,它不能与运动特化有关,它应该只是改变特定电影剪辑的变量

如果您想要我正在创建的文件,请回复,
谢谢!:)

如果在while循环中重复更改_y属性,则不会将更改视为动画(flash将在脚本完成后运行代码并更新屏幕,因此它将立即跳转到结束位置)

相反,您可以更改每个新帧上的值,直到到达新位置:

on (press) {
    var moveCount = 10;

    _root.example.onEnterFrame = function() {
        moveCount--;

        if (moveCount > 0) {
            this._y--;
        } else {
            delete this.onEnterFrame;
        }
    }
}

另外,强烈建议不要在on(press)处理程序中有太多代码,而是创建一个新函数并调用它。使代码更易于重用和维护。

感谢您的回答。虽然我的游戏尚未完成,但您可以通过以下链接查看: