2013-10-10 30 views
0

在我的屏幕上,我有10個圖像和6個文本。我知道每次你調用「stage.update()」都是重新設計的視圖畫面。如何爲對象專門創建「stage.update()」?

我只有兩個是需要不斷「stage.update()」對象。首先是需要每秒更新文本的秒錶,第二個是可以在屏幕上拖動的圖像。

如何創建一個「stage.update()」專門爲對象?


嘗試:

  1. 我製造 「階段」 的陣列用於單個帆布:

    canvas = document.getElementsByTagName ('canvas') [0]; 
    stage['full'] = new createjs.Stage(canvas); 
    stage['chronometer'] = new createjs.Stage(canvas); 
    

    ,當執行的問題,一個取消其他:

    stage ['full']. update(); 
    stage ['chronometer']. update(); 
    
  2. 我試圖創建 容器。

    containerTest = new createjs.Container(); 
    stage.addChild(containerTest); 
    

    問題? 無法只更新容器中的內容。

回答

0

隨着股票和櫃檯,我認爲你可以做你的東西:

var counter = 0; 
createjs.Ticker.addEventListener("tick", handleTick); 
var chronometer = ... 
chronometer.cache(xChrono,yChrono,widthChrono,heightChrono); 

function handleTick(event) { 
    // handle your drag and drop 
    // ... 
    if (counter == maxValue) { // maxValue = 1000/createjs.Ticker.getInterval() 
     // redraw your chronometer 
     // ... 
     counter = 0; 
     chronometer.updateCache(); 
    } else { 
     counter++; 
    } 
    stage.update(); 
} 
+0

這或多或少我做什麼。然而,運行「stage.update()」的計時器中的每次更改都會再次繪製整個屏幕。在另一個論壇上指出,要爲每一個創建兩個帶有「舞臺」的「畫布」,但不知道哪個選項的處理成本更高。 –

+0

也許「DisplayObject.cache()」是您正在查找的方法。它允許您防止緩存的內容每次打勾重新呈現。有了這個,你可以'緩存'你的計時器對象,然後每秒鐘更新這個緩存。 –

+0

有趣。你能舉個例子嗎? –