【发布时间】:2016-08-08 15:09:54
【问题描述】:
有没有一种方法可以轻松地将 Fabric JS IText 转换为 TextBox(1.6.0 中的新功能),反之亦然,而无需费力地阅读和设置它们的每一个属性,即它们之间的某种快速映射方式?
谢谢。
【问题讨论】:
标签: fabricjs
有没有一种方法可以轻松地将 Fabric JS IText 转换为 TextBox(1.6.0 中的新功能),反之亦然,而无需费力地阅读和设置它们的每一个属性,即它们之间的某种快速映射方式?
谢谢。
【问题讨论】:
标签: fabricjs
你可以轻松做到
var text = oldItext.text;
var textobj = oldItext.toObject();
delete textobj.text;
delete textobj.type;
var clonedtextobj = JSON.parse(JSON.stringify(textobj));
var textbox = new fabric.Textbox(text, clonedtextobj);
关于json的使用说明:
Fabricjs 中的普通 toObject 方法不负责深度克隆。因此您创建的新文本框将与旧 itext 共享相同的样式对象。在您从 1 中创建 2 个副本之前,这不一定是坏事。
如果你不使用样式,更快的方法是:
var text = oldItext.text;
var textobj = oldItext.toObject();
delete textobj.type;
var textbox = new fabric.Textbox(text, textobj);
【讨论】:
var text = oldTextBox.text; var textobj = oldTextBox.toObject(); delete textobj.text; delete textobj.type; var clonedtextobj = JSON.parse(JSON.stringify(textobj)); var newitext = new fabric.IText(text, clonedtextobj);