У меня есть следующие два вопроса о подклассе.
Почему я могу видеть этот объект, только если свойство objectCaching: false
? Если objectCaching: true
и я масштабирую свой холст, то я в конечном итоге вижу объект. Однако, когда я устанавливаю objectCaching: false
, тогда появляется объект.
Почему я не могу выбрать мои объекты подкласса? Я могу видеть круг на холсте, но не могу выбрать его. Если нарисовать какие-либо стандартные фигуры, встроенные в фабрику cjs, например Line, Rect, et c. Тогда я могу выбрать объект. Мой подкласс customCircle ниже действительно отображается, если вызов fabric.getObjects()
. Я попытался установить selectable: true
, но это также не решило мою проблему.
var CustomCircle = fabric.util.createClass(fabric.Object, {
objectCaching : false,
type: "customCircle",
width: 10,
height: 10,
radius: 4,
initialize: function (options) {
this.callSuper('initialize', options);
this.set({
width: this.width,
height: this.height,
radius: this.radius
})
},
toObject: function () {
return fabric.util.object.extend(this.callSuper('toObject'), {
width: this.width,
height: this.height,
radius: this.radius,
type: this.type
});
},
_render: function (ctx) {
this.callSuper('_render', ctx);
ctx.beginPath();
ctx.arc(100, 250, 50, 0, 2 * Math.PI, false);
ctx.fillStyle = 'green';
ctx.fill();
ctx.lineWidth = 5;
ctx.strokeStyle = '#003300';
ctx.stroke();
}
})