0

3〜5秒のアニメーションを作成するためにDHTMLを使用しようとしています(アニメーションは左から右に開始することを想定しています...)。

それを行う方法はありますか?

//this one will set the the pictue on the right side of the screen
function setUpPicture() {
    subRunnerOBJ = new Object();
    subRunnerOBJ.topPos = 100;
    subRunnerOBJ.leftPos = 0;
    subRunnerOBJ.velX = 400;
    subRunnerOBJ.velY = 0;
    subRunnerOBJ.score = 0;
    hide1.style.visibility = "visible";
    hide1.style.left = subRunnerOBJ.leftPos + "px";
    hide1.style.top = subRunnerOBJ.topPos + "px";
    hide1.style.position = "absolute";
    //once we place the location of the sub , we will Call to new function that will move it
    startMovePicture();
}

function startMovePicture() {
    dt = 50; // in miliseconds
    h = setInterval("moveObj(subRunnerOBJ)", dt);
}

function moveObj(someObj) {
    counter = 0;
    while (counter < 30000) {
        subRunnerOBJ.leftPos = subRunnerOBJ.leftPos + subRunnerOBJ.velX * dt / 1000;
        subRunnerOBJ.topPos = subRunnerOBJ.topPos + subRunnerOBJ.velY * dt / 1000;
        hide1.style.left = subRunnerOBJ.leftPos + "px";
        hide1.style.top = subRunnerOBJ.topPos + "px";
        counter = counter + 50;
        if (counter == 3000) {
            stopRunning();
        }
    }
}

function stopRunning() {
    clearInterval(h);
    hide1.style.visibility = "hidden";
}

この関数を使用すると、画像を 1 秒未満で見ることができます...どうすればここで時間を設定できますか??

4

1 に答える 1

0

ミリ秒の値を、目的の秒数に等しい数値に置き換えます。これは、5 秒間で 5000 になります。内部の while ループを削除し、そのブロック内の最後のステートメントとしてand をmoveObj追加して置き換えます。clearInterval(h)hide1.style.visibility = "hidden";

于 2012-09-10T23:03:30.783 に答える