【问题标题】:Kinetic js rotate to mouse with stage clickKinetic js通过舞台点击旋转到鼠标
【发布时间】:2013-06-14 22:07:54
【问题描述】:

在触发鼠标位置事件时遇到问题。当我拖动对象时,对象正在移动,但在我单击舞台时却没有。我应该怎么办? (当然,我正在添加舞台和图层之类的东西;)提前非常感谢!

function rotateAlltoMouse(layer3) {

      for(var n = 0; n < layer3.getChildren().length; n++) {
      var shape = layer3.getChildren()[n];
      var stage = shape.getStage();
      var mousePos = stage.getMousePosition();



      var xd =  shape.getPosition().x - mousePos.x;
      var yd =  shape.getPosition().y - mousePos.y ;
       var theta = Math.atan2(yd, xd);
      var degree = theta / (Math.PI / 180) - 45;

      shape.setRotationDeg(degree);

    }
  }
     $('#container').bind('mousemove touchstart', function() {
                               rotateAlltoMouse(layer3);
                             });                         

【问题讨论】:

  • 您是否遇到任何 JS 错误?我认为假设一个图层的所有子级都是形状并不安全,因为第一个子级通常是包含节点属性的attrs 对象。我会仔细调试您的代码,并确保您的每个变量都是您认为的那样。

标签: rotation mouse kineticjs stage


【解决方案1】:

只是猜测——如果您提供更多代码,可能比猜测更好;)

尝试使用 kineticJS 请求包含的 DOM 元素,这样你就知道你得到了正确的容器。 KineticJS 创建了一些供自己使用的支持元素,而您的#container 可能无法登上舞台。

$(stage.getDOM()).on('mousemove',  function(){ rotateAlltoMouse(layer3); });    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 2015-12-05
    • 2013-04-22
    • 2014-07-01
    • 2017-01-19
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多