【问题标题】:Easily convert between Fabric JS IText and Textbox?在 Fabric JS IText 和 Textbox 之间轻松转换?
【发布时间】:2016-08-08 15:09:54
【问题描述】:

有没有一种方法可以轻松地将 Fabric JS IText 转换为 TextBox(1.6.0 中的新功能),反之亦然,而无需费力地阅读和设置它们的每一个属性,即它们之间的某种快速映射方式?

谢谢。

【问题讨论】:

    标签: fabricjs


    【解决方案1】:

    你可以轻松做到

    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);
    

    【讨论】:

    • 非常感谢。要使用顶部代码(因为我需要样式和字体)从 TextBox 转换回 IText,我会使用相同的代码但交换 IText 和 TextBox 引用吗?例如
    • 例如此代码: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);
    • itext 和 textbox 都使用样式。是的,你可以使用相同的代码,只需交换引用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2021-01-27
    • 2016-04-07
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多