0

Web ページで 3 つ (またはそれ以上) の Kinetic.Stages を開始しています。最初のステージを 1 人で始めると、通常どおりに機能します。

しかし、後でステージを開始すると、onFrame() で frame.timeDiff を最初に呼び出すと、巨大な値 (100 万、100 万) が返されます。

何が原因でしょうか?

window.onload = function() {
    var stage1 = new Kinetic.Stage({
        container: "widget1",
        width: 10,
        height: 10
    });

    stage1.onFrame(function(frame) {
        console.log(frame.timeDiff);
    }

    stage1.start();


    var stage2 = new Kinetic.Stage({
        container: "widget2",
        width: 10,
        height: 10
    });

    stage2.onFrame(function(frame) {
        // empty
    });

    stage2.start();


    var stage3 = new Kinetic.Stage({
        container: "widget3",
        width: 10,
        height: 10
    });

    stage3.onFrame(function(frame) {
        // empty
    });

    stage3.start(); 
};

1 つのステージだけが開始されている間は正常に動作しますが、他のステージが開始されるとすぐにフレーム タイムが膨大になります。開始と初期化を再配置しても、何も変わりません。

4

1 に答える 1

0

Chromeを使用していますか?Chromeのタブ間を移動するときに問題が発生しました。(frame.timeDiffは巨大になりました。Chromeはjavascriptを一時停止しないので(私は思います)。

これを解決するには、次を追加します。var timeDiff = Math.min(frame.timeDiff、50);

これが助けになることを願っています

于 2012-08-29T10:06:22.950 に答える