【问题标题】:kinetic js group position is not correct when dragging拖动时动力学js组位置不正确
【发布时间】:2014-03-26 08:48:48
【问题描述】:

我正在尝试创建包含 text,image 的组对象。 拖动组对象时,我想获得正确的位置(x,y)。 现在我得到像这样的负值 {x:-26,y:-18}。

 var text2=new Kinetic.Text({
        x: 40,
          y: 125,
        text: 'Time:4:20',
        fontFamily: 'Calibri',
        fontSize: 12,
        padding: 5,
        fill: 'red',
        draggable: false
      });
    var group = new Kinetic.Group({
                    width:94,
                    height:45,
                    draggable: true
                    });
                   group.on('dragend', function() {
                          alert("X:"+group.getAbsolutePosition().x+"Y:"+group.getAbsolutePosition().y);
                        });
 group.add(text2);
 layer.add(group);
stage.add(layer);

【问题讨论】:

    标签: javascript canvas kineticjs


    【解决方案1】:

    您的代码运行正常。

    您在可拖动组上有一个不可拖动的文本。

    这会使文本充当拖动整个组的“句柄”。

    (文本不会相对于组移动。而是通过拖动文本来移动整个组)。

    因此,如果您将文本向上和向左拖动一点,该组将被向上和向左一点。

    因此该组报告负坐标。

    【讨论】:

    • 我应该怎么做才能获得正确的组位置?在我的组对象中包括图像和文本,我想将两者拖动在一起并获得组的正确位置。如果有其他解决方法,请指导我。
    • 由于该组被文本拖动,因此您在拖动后获得了该组的正确左上角位置。当你说“正确的位置”时——这究竟是什么意思?你是指文字的位置吗?
    • 是的,文本的位置。
    • 好的,只需添加组和文本位置: var x=group.x()+text.x(); var y=group.y()+text.y();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多