我现在更新了jsfiddle,仅在初始加载期间添加网格。
与此有关的几个问题:
1)当我点击“显示网格”时,它不会出现。但是,如果我注释掉removeGrid()
从initStage开始,网格确实出现了。我错过了什么 - 因为我假设我在showGrid中调用的网格对象与removeGrid中的网格对象不同 - 尽管我只能看到它被创建一次。
2)我还添加了一个“清除阶段”按钮,当调用时清除阶段(工作)
但我无法再显示网格。清除舞台后我已经包含了make_grid();
- 但它没有效果。我假设由于(1)中出现的错误?
3)如何从顶部和左侧启动网格20px。基本上,我希望网格只出现在画布的中心 - 一直留下20px的边框。
非常感谢您的帮助!
答案 0 :(得分:1)
就你的removeGrid()错误而言,jsfiddle中有一个简单的错误:
$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);
}
这里发生的事情如下:我已经减少了你的循环,使其从20px变为Width-20px,使你的终点在左/上偏移20px,从widht / height减少40px到另一端 - 点
如果您有任何问题,请与我们联系。