【问题标题】:Easeljs Big Canvas FPS dropEaseljs 大画布 FPS 掉落
【发布时间】:2014-01-21 14:31:46
【问题描述】:

我用easeljs 操作一个1024x768 的画布。

 <canvas id="testcanvas" height="768" width="1024"></canvas>

看看这个小提琴,http://jsfiddle.net/2TPHg/

放大 html 窗口并拖动矩形,查看控制台,看到我的应用程序中的 fps 下降到 40,它下降到 20,我如何将其提高到 60

【问题讨论】:

    标签: javascript performance animation frame-rate easeljs


    【解决方案1】:

    嗯,你有一个对舞台的空引用,它没有正确更新。

    由于舞台是一个全局变量,你不需要找到它(除非你有多个舞台对象)。

    您可以在 ticker 事件侦听器函数上更新舞台,并且只有在 ticker 未暂停时才这样做。

    通过用户与鼠标的交互来暂停和取消暂停:

    http://jsfiddle.net/2TPHg/4/

    createjs.Ticker.addEventListener("tick", function(e) {
        if(e.paused !== true){
            stage.update();
            txt.innerHTML = createjs.Ticker.getMeasuredFPS();
        }
    });
    

    我能够通过这个获得稳定的 60 fps。 请记住,即使跟踪到控制台也会占用 CPU 周期,并且可能会减慢速度较慢的计算机,即使只是一点点。

    【讨论】:

    • 你放大 html 了吗,我仍然得到大约 30 fps 甚至比以前更差。
    • 即使在您的示例中,只更改画布大小(2000 像素 x 2000 像素),仍然引用 null 阶段,并跟踪到控制台,我的机器上得到 60fps(mac book pro) .
    猜你喜欢
    • 2012-06-07
    • 2021-01-25
    • 2018-10-23
    • 2013-03-29
    • 1970-01-01
    • 2016-10-01
    • 2016-12-24
    • 2013-10-15
    • 2018-11-01
    相关资源
    最近更新 更多