Um das Leinwandbild von fabricjs nach Namen zu erhalten, muss ich eine eindeutige ID oder einen eindeutigen Namen für dieses Bild festlegen. Ich habe eine neue Klasse erstellt fabric.NamedImage
So habe ich es gemacht.Wie Name zu Fabricjs Objekt hinzufügen?
fabric.NamedImage = fabric.util.createClass(fabric.Image, {
type: 'nameimage',
initialize: function (element, options) {
this.callSuper('initialize', element, options);
options && this.set('name', options.name);
},
toObject: function() {
return fabric.util.object.extend(this.callSuper('toObject'), { name: this.name });
},
_render: function (ctx) {
this.callSuper('_render', ctx);
}});
Und Fromobject
fabric.NamedImage.fromObject = function (object, callback) {
fabric.util.loadImage(object.src, function (img) {
var instance = new fabric.NamedImage(img, object);
callback && callback(instance);
});
};
fabric.NamedImage.async = true;
Aber wenn ich versuche, Leinwand loadFromJSON
aus irgendwelchen Gründen zu laden ich Fehler erhalte
cannot read property 'async' of undefined
Hier ist der Code, wo ich versuche zu laden JSON
for (i = 0; i <= canvas.length; i++) {
JSON.parse(imageQuery[i]);
canvas[i].loadFromJSON(imageQuery[i]);
canvas[i].renderAll();
console.log(' this is a callback. invoked when canvas is loaded!xxx ');
}
habe ich schon gelesen cannot read property 'async' of undifined und save canvas to server with custom attribute
Gibt es irgendeine Art und Weise durch seinen Namen zu bekommen?
Funktioniert immer noch nicht mit dem gleichen Fehler. Ich habe 'nameimage' in 'namedImage' geändert – InnokentyDM