javascript - 如何在 Fabric 中制作线条画动画

标签 javascript fabricjs

在清晰的 Canvas 中制作线条画动画并不难,但我不明白如何在 Fabric 中做到这一点。 例如我得到这一行:

var L = new fabric.Line([50, 100, 200, 200], {
    left: 170,
    top: 150,
    stroke: 'red'
})

我需要它的一端开始继续直到下一点(就像铅笔画线一样)。 我知道有一个函数 'animate' ,但是带有

L.animate('left', 50, {
onChange: canvas.renderAll.bind(canvas),
duration: 3000
});

我的线只改变了它的左上角坐标,而不改变本身

最佳答案

您需要将 animate 属性作为第一个参数中的对象传递

{
  x2: 200,
  y2: 200
}

演示

var canvas = new fabric.Canvas('canvas');
var line = new fabric.Line([50,100,50,100],{
  left: 170,
  top: 150,
  stroke: 'red'
});
canvas.add(line);
line.animate({
  x2: 200,
  y2: 200
}, {
  onChange: canvas.renderAll.bind(canvas),
  onComplete: function() {
    line.setCoords();
  },
  duration: 3000
});
canvas{
 border:2px solid #000;
}
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id='canvas' width=500 height=400>

关于javascript - 如何在 Fabric 中制作线条画动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50199458/

相关文章:

javascript - 如何从设置的事件监听器中删除过时的回调?

javascript - 如何在fabric js中添加图像组

javascript - Fabric js与手势如何防止触摸设备上的缩放

javascript - 在 localhost 上启用 SharedArrayBuffer

javascript - 在 Express.js 中外部化 route.param() 调用

javascript - Omniture PageName 在 Omniture 套件中跟踪自定义页面名称和页面 URL 我只想跟踪自定义页面名称

javascript - 在 fabric js 中使用事件处理程序 (.on) 将数据发送到函数

javascript - 有没有办法在 Vue JS 的列表渲染(v-for)中使用条件渲染

javascript - 循环遍历范围并使用 jQuery 将值分配给最近的下拉列表

.htaccess - 当我尝试从我的服务器添加图像时,Fabricjs 污染了 Canvas