2013-10-29 50 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以获得另一个端点

让我知道如果您有任何问题。