2012-08-29 19 views
0

我在網頁上啓動三個(或更多)Kinetic.Stages。當我單獨開始第一階段時,它正常運作。爲什麼開始多個階段時動畫第一幀的時間如此之大?

但是,當我開始任何階段之後,第一次調用onFrame()中的frame.timeDiff將返回一個巨大的值(一百萬,百萬)。

這可能是什麼原因造成的?

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(); 
}; 

只要只有一個階段開始,它工作正常,但只要任何其他階段開始時爲好,幀時間變得龐大。重新安排啓動和初始化不會改變任何東西。

回答

0

您使用的是Chrome嗎?在Chrome中的標籤之間出現問題時遇到問題。 (該frame.timeDiff成爲龐大由於鉻doesint暫停JavaScript的(我認爲)

我解決了這個加:。VAR timeDiff測量= Math.min(frame.timeDiff,50);

希望這是以任何幫助

+0

我使用的是Chrome,但我從來沒有找到這個的真正原因。我會接受這個答案,因爲沒有其他人,我最終使用類似的技術來處理這種情況(使用var timeDiff = frame.timeDiff%50)。對不起,響應緩慢。 –

相關問題