【问题标题】:Obtaining initial state of target object in object:modified event in fabric.js获取对象中的目标对象的初始状态:fabric.js中的修改事件
【发布时间】:2020-10-15 23:25:44
【问题描述】:

我有一个使用fabric.js 的绘图应用程序,并且我已经基于github 上的fabric-history 存储库实现了撤消/重做功能。但是,由于这种方法将整个画布状态保存在堆栈中,因此浏览器在处理所有这些数据时很快就会变得无响应。我想要一个撤消/重做方法,它只保存在与画布上的对象而不是整个画布的交互中更改的对象。使用 object:modified 事件,我看到我可以在修改后获取事件的目标对象,但我还需要修改前的对象目标状态才能在撤消中恢复它。任何有关如何获取对象状态的建议都将不胜感激。

【问题讨论】:

    标签: javascript fabricjs undo-redo


    【解决方案1】:

    我认为您可以使用saveState 方法。调用此方法后,对象获得_stateProperty 对象,该对象包含left、top 和其他属性的当前值。您可以在doc 中阅读有关saveState 方法的更多信息

    我做了一个简单的例子来演示这种方法here

    【讨论】:

    • 感谢您的回复!您提供的链接不是示例,而是文档页面。您能否更新您的示例的链接。它真的会帮助我了解如何使用 saveState 来满足我的需求。
    • 谢谢!我一直在玩这个示例并尝试将filters 数组添加到_stateProperties 对象,以便它触发object:modified,但saveState 的文档不清楚如何执行此操作并且没有例子。我需要保存filters,因为我也在为图像着色,并且我希望能够通过恢复到先前的过滤器来撤消该着色。我尝试在saveState 函数的参数中使用多种不同的形式来使用filters,但没有取得多大成功。你知道它应该如何格式化吗?
    猜你喜欢
    • 2015-04-21
    • 2022-12-06
    • 2015-04-21
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多