javascript - 使用kinetic js更新 Canvas

标签 javascript html5-canvas

我正在使用 Kinetic JS 拖动一个矩形“left_handle”。在拖动过程中,我还想将另一个矩形“框”的左边缘放置在其顶部。我没有收到任何错误,所以我假设我正在做的事情正在工作,但我认为我需要做一些事情来更新 Canvas 或......?

left_handle 矩形按预期移动,但框没有任何反应。

    var STAGE_WIDTH = 500;    

    var stage = new Kinetic.Stage({
      container: "container",
      width: STAGE_WIDTH,
      height: 200
    });
    var layer = new Kinetic.Layer();
    var rectX = 80;
    var rectY = stage.getHeight() / 2 - 25;

    var box = new Kinetic.Rect({
      x: rectX,
      y: rectY,
      width: 100,
      height: 50,
      fill: "#00D2FF",
      stroke: "black",
      strokeWidth: 4
    });

    var handle_left = new Kinetic.Rect({
        x: rectX,
        y: rectY,
        height: 50,
        width: 10,
        fill:'#FFC400',
        stroke:'black',
        strokeWidth:3,
        draggable:true,
        dragConstraint:'horizontal',
        dragBounds: {
            left: 10, right: STAGE_WIDTH - 20
        }
    });    

    // - - - - - - - this is the bit that doesn't work - - - - - 
    handle_left.on('dragmove', function(evt) {
      box.setX(handle_left.x);
      layer.draw();
    });
    // - - - - - - - - - - - - 

    layer.add(box);
    layer.add(handle_left);
    stage.add(layer);

最佳答案

你已经很接近了,试试这个:

box.setX(handle_left.getX());

引用:http://jsfiddle.net/jHCRm/

关于javascript - 使用kinetic js更新 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11985620/

相关文章:

javascript - 理解 Javascript 奇怪的非运算符和空数组表达式

javascript - 我如何延迟绑定(bind) backbone.js 中的事件直到特定时间?

javascript - 如何使用碰撞代码使多个球不断生成

javascript - HTML Canvas : rectangle stroke appears transparent

javascript - 在每 n 个字符后插入一个字符,但仅在前 x 次出现时插入一个字符

javascript - 当我下次访问同一个 View 时,如何使用 AngularJS 重用在浏览器中呈现的 View

javascript - 将同一类别的单词放在一起的有序列表

javascript - JavaScript Canvas 中的 HSB 颜色填充

javascript - 如何去除视频的绿色背景,使其透明?

javascript - Firefox下canvas动画闪烁