2014-06-17 103 views
0

我想弄清楚如何檢查KineticJS中的圖層是否可見。我需要這個,以便在用戶點擊一個按鈕時適當地切換任何給定圖層的可見性。如果可見,我想在點擊按鈕時將其隱藏起來。如果它不可見,那麼我想展示它。思考?我看到有一個isVisible函數,但是當我嘗試在一個圖層上使用它時什麼都不會發生。下面的代碼不會出錯,但它沒有做任何事情。這是用KineticJS寫成的。在我的測試中,我發現這個事件恰當地被觸發,所以不是這樣。我還發現繪畫功能是適當的發射。檢查KineticJS中圖層的可見性

scope.$on('layertoggle', function(event){ 
var layerShapes = scope.kineticStageObj.get('#layer1'); 
if(!layerShapes.isVisible()){ 
    layerShapes.hide(); 
} 
else{ 
    layerShapes.show(); 
} 
scope.kineticStageObj.draw(); 
}); 

回答

0

試試這個:

var layerShapes = scope.kineticStageObj.get('#layer1')[0]; 

get返回形狀的集合匹配條件的。儘管id是唯一的,但您仍然必須訪問陣列的第一個位置才能訪問所需的形狀。

+0

是的,我寫的代碼行會返回圖層(最後注意'[0]'),那麼你只需要使用'isVisible()'方法,就像你在代碼中所做的那樣。 – user3632710