KineticJs - 网格没有出现在画布上

时间:2013-10-29 15:44:34

标签: kineticjs

previous question

相关

我现在更新了jsfiddle,仅在初始加载期间添加网格。

与此有关的几个问题: 1)当我点击“显示网格”时,它不会出现。但是,如果我注释掉removeGrid() 从initStage开始,网格确实出现了。我错过了什么 - 因为我假设我在showGrid中调用的网格对象与removeGrid中的网格对象不同 - 尽管我只能看到它被创建一次。

2)我还添加了一个“清除阶段”按钮,当调用时清除阶段(工作) 但我无法再显示网格。清除舞台后我已经包含了make_grid(); - 但它没有效果。我假设由于(1)中出现的错误?

3)如何从顶部和左侧启动网格20px。基本上,我希望网格只出现在画布的中心 - 一直留下20px的边框。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

就你的removeGrid()错误而言,jsfiddle中有一个简单的错误:

  1. $d("body").on('click','#removeGrid',function(){< - 两个事件处理程序中都是'#addGrid'
  2. 它也解决了问题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到另一端 - 点

    如果您有任何问题,请与我们联系。