2013-10-29 55 views
0

相關的previous questionKineticJs - 沒有出現在畫布

網格現在我已經更新了jsfiddle只在初始負載增加電網。

與此相關的幾個問題: 1)當我點擊「顯示網格」時,它不會出現。但是,如果我從initStage註釋掉removeGrid() 行,則會出現網格。我錯過了什麼 - 因爲我假設我在showGrid中調用的網格對象與removeGrid中的網格對象不同 - 儘管我只能看到它被創建一次。

2)我還添加了一個「清除階段」按鈕,當清除階段(工作) ,但我無法再次顯示網格。清除舞臺後我已包含make_grid(); - 但它沒有效果。我假設由於(1)中提出的錯誤?

3)如何從頂部和左側開始20px的網格。實質上,我希望網格只出現在畫布的中心 - 一直留下20px的邊框。

很多感謝您的幫助!

回答

1

至於你removeGrid()錯誤而言,有一個簡單的錯誤中的jsfiddle:

  1. $d("body").on('click','#removeGrid',function(){ < - 它在這兩個事件處理程序是 '#addGrid'

它還解決了概率2. 更新小提琴http://jsfiddle.net/aplus1/37Z4P/20/

爲了您的概率3:檢查這小提琴 - http://jsfiddle.net/aplus1/37Z4P/21/

,這裏是已更改相關代碼:

for (i = 0; i < (stage.getWidth()-40)/CELL_SIZE + 1; i++) { 
    var I = i * CELL_SIZE + 20; 
    var l = new Kinetic.Line({ 
     stroke: "black", 
     points: [I, 20, I, stage.getHeight()-20] 
    }); 
    grid.add(l); 
} 

for (j = 0; j < (stage.getHeight()-40)/CELL_SIZE + 1; j++) { 
    var J = j * CELL_SIZE + 20; 
    var l2 = new Kinetic.Line({ 
     stroke: "black", 
     points: [20, J, stage.getWidth()-20, J] 
    }); 
    grid.add(l2); 
} 

這到底是怎麼發生的情況如下:我已經降低你的循環,使得它去從20像素到寬,20像素,通過抵消你的終點20px在左/頂部,從widht/height減小40px以獲得另一個端點

讓我知道如果您有任何問題。