在fabric.js中初始化对象创建的子类
Initializing subclass on object creation in fabric.js
在画布上创建对象后,我试图在fabric.js中初始化一个子类。我定义了以下子类:
var Route = fabric.util.createClass(fabric.Path, {
type: 'routePath',
initialize: function(options) {
options || (options = {});
this.callSuper('initialize', options);
},
});
然后,我监听对象创建,并希望将创建的fabric.Path
转换为Route
子类的实例:
canvas.on('object:added', function(options) {
var createdObject = options.target;
var route = new Route(createdObject.toObject());
});
上面的代码似乎不起作用。如果我在创建route
变量后检查它,它就没有createdObject
所具有的任何属性。似乎所有的设置都显示为默认值。
编辑
更简单地说,我只是想创建一个Route
类的新实例。我正在传递一个width
选项,以测试新创建的对象是否包含该宽度:
var testRoute = new Route({width: 150});
alert(testRoute.getWidth()); //alerts 0
为什么宽度是0而不是150?我创建Route
子类的方式有什么问题吗?
看起来我使用了错误的构造函数定义。这是工作代码:
var Route = fabric.util.createClass(fabric.Path, {
type: 'routePath',
initialize: function(path, options) {
options || (options = {});
this.callSuper('initialize', path, options);
},
});
canvas.on('object:added', function(options) {
var route = new SlopeRoute(options.target.path, options.target.toObject());
});
相关文章:
- 是否可以从父类访问子类的属性
- 使用私有成员创建JavaScript类
- 子类访问父类's闭包变量
- Javascript关键字搜索子类Div值
- 如何通过Prototype或jquery移除子类的父类基类
- JavaScript数组的子类化破坏了快速枚举
- 可以“;超级“;可以在子类的方法内部使用,在不直接引用的情况下调用相应的超类方法
- 在fabric.js中初始化对象创建的子类
- 创建新的子类对象时设置父类中定义的变量时出现问题
- 创建一个 JavaScript 构造函数,该函数对数组进行子类化
- 使用 for 循环通过 Parse 创建子类对象
- 在 Javascript 中创建子类时,为什么要分配原型字段
- 使用proto创建一个Storage子类
- 使用现有对象的引用创建子类对象
- JavaScript:从父类实例中创建子类
- 在javascript中通过es7装饰器创建子类(扩展)
- jquery/javascript:如何删除'活动'从父元素的所有子元素中创建一个类
- 如何在JS/Seed的GObject子类中创建方法
- 创建 HTMLDivElement 的子类
- 我可以创建dom类的子类吗?