setAngle 不是功能 fabricjs

kar*_*870 5 javascript html5-canvas fabricjs

我最近开始使用fabricjs,我有一个关于连接对象的问题。我确实创建了示例演示,用于从箭头连接parent objectchild object连接。我得到了示例演示http://kpomservices.com/HTML5CanvasCampaign/campaign.html。此代码应适用于结构 1.4.2。类似的代码可能适用于版本 2.3.3 不起作用。

错误 functions.js:963 Uncaught TypeError: c.setAngle is not a function

代码

function makeArrow(centerpt, left, top, line) {
    var c = new fabric.Triangle({
        width: 10,
        height: 10,
        left: left,
        top: top,
        //selectable: false,
        strokeWidth: 3,
        fill: 'grey',
        opacity: 1,
        stroke: 'grey',
        originX: 'center',
        originY: 'center'
    });

    c.hasBorders = c.hasControls = false;
    c.angle = 90;
    c.line = line;
    var dx = left - centerpt.x;
    var dy = top - centerpt.y;
    var angle = Math.atan2(dy, dx) * 180 / Math.PI;
    c.setAngle(angle + 90);
    c.setCoords();
    c.name = 'ep';
    line.ep = c;
    c.line = line;
    return c;
}
Run Code Online (Sandbox Code Playgroud)

Dur*_*rga 2

Build 没有 setter/getter(可选)。您可以使用在这里进行构建Named accessors。如果你想设置角度,你可以使用

obj.angle = text;
//or
obj.set({
 angle:angle
});
//or
obj.set('angle', angle);
Run Code Online (Sandbox Code Playgroud)

演示版

obj.angle = text;
//or
obj.set({
 angle:angle
});
//or
obj.set('angle', angle);
Run Code Online (Sandbox Code Playgroud)
var canvas = new fabric.Canvas('c');
var triangle = new fabric.Triangle({
  left: 150,
  top: 50,
  width: 300,
  height:200,
  fill:'',
  stroke:'red'
})

canvas.add(triangle);
triangle.set('angle',40);
//triangle.angle = 40;
//triangle.set({angle : 40})
Run Code Online (Sandbox Code Playgroud)
canvas{
 border:1px solid #000;
}
Run Code Online (Sandbox Code Playgroud)