【发布时间】:2018-12-25 09:29:17
【问题描述】:
尝试创建一个自定义类,该类将在 Fabric 矩形的左上角显示图像。
扩展结构类并调用ctx.drawImage 没有显示任何内容。
var CustomRect = fabric.util.createClass(fabric.Rect, {
type: 'labeledRect',
initialize: function(options) {
options || (options = { });
const image = new Image();
image.src = signBtn;
this.callSuper('initialize', options);
this.set('label', options.label || '');
this.set('image', image);
},
toObject: function() {
return fabric.util.object.extend(this.callSuper('toObject'), {
label: this.get('label')
});
},
_render: function(ctx) {
this.callSuper('_render', ctx);
ctx.font = '20px Helvetica';
ctx.fillStyle = '#333';
ctx.fillText(this.label, -this.width/2, -this.height/2 + 20);
ctx.drawImage(this.image, this.left+10, this.top-5, 15, 15);
}
});
fillText 工作正常并正确显示标签。
尝试了一些不同的方法,认为图像未加载。它作为 SVG 导入。我已经让它以其他方式显示,但更喜欢让自定义类处理它而不是事件处理程序。
【问题讨论】:
标签: javascript html css canvas fabricjs