小编Jim*_*Bee的帖子

从对象内的其他属性值设置属性值

有没有办法相对于同一对象中的另一个属性设置对象中属性的值?

例如:

var myObj = {
    prop1 = 10,
    prop2 = prop1 + 5
};

alert(myObj.prop2); //Alerts 15
Run Code Online (Sandbox Code Playgroud)

另一个例子是当我在对象内创建对象时

var mainObj = {
    obj1: {x: 100, y:100},
    obj2: {x: obj1+10, y: obj1+10}
};

alert(mainObj.obj2.x); //Alerts 110
Run Code Online (Sandbox Code Playgroud)

我希望某些属性与同一对象中的其他属性保持相对关系,这样当我更改一个属性时,它将影响另一个属性。

javascript jquery properties object

6
推荐指数
1
解决办法
5308
查看次数

如何使用 requestAnimationFrame 暂停和重新启动秒表计时器?

我正在将 requestAnimationFrame 循环用于秒表和其他一些动画。我使用从 rAF 返回的时间戳来获取时间,但是当我停止循环以暂停计时器,等待几秒钟,然后再次启动循环时,计时器将显示总时间。

我需要能够暂停计时器并从暂停的时间继续。有没有办法在暂停计时器后重置时间戳变量?如果您需要我发布一些代码,请告诉我,或者如果您需要我进一步解释自己,我会这样做。

编辑

    var frames = 0,
    startTime = null,
    lastTime = null,
    fps = 1000/120,
    isRunning = false,
    pTime = 0,
    timeElapsed;

function loop(timeStamp){

        if(!startTime) startTime = timeStamp;
        var timeDiff = lastTime ? (timeStamp - lastTime) : fps,
            timeScale = timeDiff / fps,
            timeElapsed += (timeStamp - startTime)/1000,
            lastTime = timeStamp;

        if(isRunning){ 
            requestAnimationFrame(loop);
            gField.t.text = ++frames + "f / "+parseInt(timeElapsed - pTime)+"s = "+parseInt(frames/(timeElapsed-pTime)) + "fps\n"+(timeDiff).toFixed(2);
        }
        /*      
        canvas manipulation e.g.
        particle.x += acc*timeElapsed;
        */ …
Run Code Online (Sandbox Code Playgroud)

javascript canvas timer requestanimationframe

2
推荐指数
1
解决办法
3331
查看次数