fabricJS-自定义对象未绘制在画布上
fabricJS - Custom object is not drawn on canvas
我正在fabricJS中试用自定义对象。我从自己画的一条线开始。我知道这已经有了一个对象,但我想了解背后发生了什么,以及我可以在多大程度上改变事情。所以,我用一条简单的线作为开头,但由于任何原因,它都没有画在画布上。
看起来_render
函数没有被调用,而initialize
工作正常。你能告诉我我的代码出了什么问题吗?
JSFiddle
fabric.CustomLine = fabric.util.createClass(fabric.Object, {
type: 'customline',
pos : {
x1 : 0,
y1 : 0,
x2 : 0,
y2 : 0
},
initialize: function (options) {
options = options || {};
this.callSuper('initialize', options);
this.pos.x1 = options.x1 || 0;
this.pos.y1 = options.y1 || 0;
this.pos.x2 = options.x2 || 0;
this.pos.y2 = options.y2 || 0;
},
_render : function (ctx) {
ctx.beginPath();
ctx.moveTo(this.pos.x1, this.pos.y1);
ctx.lineTo(this.pos.x2, this.pos.y2);
ctx.closePath();
this._renderFill(ctx);
this._renderStroke(ctx);
}
});
编辑:
在这个问题上也有同样的问题。似乎必须将width
和height
属性设置为> 0
,但我不明白为什么。我在fabricJS源代码中也找不到这种解决方法。
因此_render
函数由Object.render
函数调用。
Object.render
的启动方式如下:
render: function(ctx, noTransform) {
// do not render if width/height are zeros or object is not visible
if ((this.width === 0 && this.height === 0) || !this.visible) {
return;
}
...
}
对象在initialize
函数中没有初始化任何宽度和高度,因此render
方法立即返回,并且不会调用_render
函数。
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- jQuery自定义验证比较多个输入的序列
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在wordpress一定时间后更改自定义字段
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 自定义函数中的光标位置
- 如何在BIRT报告中绘制或绘制自定义设计的图表
- 如何在Dygraph中绘制第二个自定义数据点
- ASP.NET 或Javascript库,用于在美国地图上以颜色绘制自定义零件
- 自定义突出显示以绘制堆积条形图
- 使用自定义响应在谷歌地图上绘制路线
- 在Highcharts条形图中绘制自定义条形图
- GoogleCharts与KnockoutJS自定义绑定只绘制第一个图表,而不是其余的
- 在高架图上绘制自定义线
- 为高图中的工具提示绘制自定义背景形状
- 谷歌地图:自定义标记图标-不在矩形中心绘制
- fabricJS-自定义对象未绘制在画布上
- 通过绘制圆在谷歌地图上选择“自定义标记”
- JointJS 将多个自定义连接器绘制到一个元素