栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从Fabric.js继承Fabric.Group的子类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从Fabric.js继承Fabric.Group的子类

出现错误“无法读取未定义的属性’async’”,因为找不到“ klass”-https:
//github.com/kangax/fabric.js/blob/master/src/util/misc.js#L214
-215

您必须将自定义对象分配给

fabric
对象-否则
canvas.loadFromJSON()
不起作用。

var fabric.CustomGroup = fabric.util.createClass(fabric.Group, {    type : 'customGroup',    initialize : function(objects, options) {        options || ( options = { });        this.callSuper('initialize', objects, options);        this.set('customAttribute', options.customAttribute || 'undefinedCustomAttribute');    },    toObject : function() {        return fabric.util.object.extend(this.callSuper('toObject'), { customAttribute : this.get('customAttribute')        });    },    _render : function(ctx) {        this.callSuper('_render', ctx);    }});

另外,您必须声明该

fromObject
方法-是必需的
loadFromJSON
。在这种情况下,您的对象是负载同步的。

fabric.CustomGroup.fromObject = function (object, callback) {    var _enlivenedObjects;    fabric.util.enlivenObjects(object.objects, function (enlivenedObjects) {        delete object.objects;        _enlivenedObjects = enlivenedObjects;    });    return new fabric.CustomGroup(_enlivenedObjects, object);};

如果您的自定义对象是异步加载的,则必须执行以下操作:

fabric.CustomGroup.fromObject = function (object, callback) {    fabric.util.enlivenObjects(object.objects, function (enlivenedObjects) {        delete object.objects;        callback && callback(new fabric.CustomGroup(enlivenedObjects, object));    });};fabric.CustomGroup.async = true;

我做了一个小的jsfiddle测试用例:http :
//jsfiddle.net/Kienz/qPLY6/



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号