0

AS2 で問題が発生しています。フラッシュでゲームを作成しています。ボタンをクリックすると、ムービー クリップを上に移動できるはずです。ここでの問題は、私がそれを行う方法を知っていることです:

    on(press){
example._y-=10;
}

しかし、10 に達するまで座標ごとに徐々に上に移動して、少しアニメーションを付けたいと思います。また、ムービー クリップは既に他のものとコードを共有しているため、モーション トゥイーンも必要ありません。複雑にならないようにします。ループを試してみましたが、うまくいきませんでした。コードは次のとおりです。

on (press) {

    var i = 1;
    while (i < 10)
    {
        _root.example._y-=1;
        i++;
    }
}

私は実際にはループが苦手で、インターネットから削除しました。ですから、ループコードの修正で私を助けてくれるかもしれませんし、他のテクニックで立ち上がって助けてくれるかもしれませんが、それはモーショントゥイーンに関連するものであってはならず、特定の変数の変更だけであるべきですビデオクリップ。

私が作成しているファイルが必要な場合は、返信してください。ありがとうございます。:)

4

1 に答える 1

1

while ループ内で _y プロパティを繰り返し変更すると、変更がアニメーションとして表示されません (スクリプトが終了すると、Flash はコードを実行して画面を更新するため、すぐに終了位置にジャンプします)。

代わりに、新しい位置に到達するまで、新しいフレームごとに値を変更できます。

on (press) {
    var moveCount = 10;

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

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

また、on(press) ハンドラーに多くのコードを含めるのではなく、新しい関数を作成して代わりに呼び出すことを強くお勧めします。コードの再利用と保守が容易になります。

于 2013-01-07T14:53:13.697 に答える