2014-04-20 295 views
1

我讀到,爲了提高性能,您應該使用緩存。有關於這個的KineticJS教程:http://www.html5canvastutorials.com/kineticjs/html5-canvas-shape-caching-with-kineticjs/它談論緩存但使用toImage()方法。KineticJS:我什麼時候使用toImage()以及什麼時候使用緩存()

我無法找到解釋,當我應該使用什麼。

這兩種方法和我何時使用cache()或toImage()有什麼區別?有人可以提供兩個例子嗎?

編輯:假設你有一個三層形狀a,b,c的圖層。當我拖動其中一個形狀時,如何緩存圖層?如何告訴KineticJS何時使用緩存對象?

難道只有這樣的:

def layer = // some layer with shape a,b,c 


stage.on('dragstart', function() { 
     layer.cache(); 

     // find the shape which is dragged. 

     }); 

stage.on('dragend', function() { 
     // ??? 
     }); 

回答

0

myNode.cache只是自動使從節點的圖像對象,並重繪過程中使用該圖像對象的過程。

你可以做同樣的事情做myNode.toImage,然後使用該圖像,而不是myNode。

兩種方法都能加快繪圖速度,因爲複製圖像像素比處理繪製命令來繪製節點要快。

+0

您能否提供緩存示例?我如何在節點和圖層上使用它。我如何激活圖像從緩存中使用? – confile

+0

請參閱我的編輯 – confile

+0

呃,.cache完成這一個命令所需的一切。你在你的問題中提供的鏈接是一個很棒的演示。你有一個複雜的多點明星,需要大量的數學來計算和繪製。然後,'star.cache'自動生成一顆星星的圖像,所有其他繪圖使用該圖像繪製星星,而不是使用複雜的數學來創建和繪製星星。 – markE

相關問題