gpt4 book ai didi

fabricjs - Fabric.js renderAll 方法的回调函数?

转载 作者:行者123 更新时间:2023-12-04 18:03:43 24 4
gpt4 key购买 nike

我正在使用 Fabric.js,需要在 renderAll 完全完成后调用一个函数。这似乎是存在的简单功能,但我的搜索、文档阅读等却一无所获。如果有人有解决方案,我将不胜感激。

canvas.deactivateAll().renderAll();
// I need a save function called here, after the above has completed

我已经尝试绑定(bind)到 Canvas 的 after:render 方法,但是每个对象都会调用它,而不是所有对象。

canvas.on('after:render', function() {
// call the save function here
});

我想我能做的是计算 Canvas 对象的数量,然后在 after:render 方法上递增一个计数器,然后检查计数器是否 === 对象的数量,如果是,则调用保存功能。不过,这对我来说似乎相当令人费解。

(作为更多的背景,如果有另一种方法可以实现我的需要,我需要保存一个 Canvas 图像,但首先需要取消选择所有对象,这样图像就不会在显示 handle 的情况下保存。)

最佳答案

我找到了一个使用 deactivateAllWithDispatch 方法的解决方案,它会触发 selection:cleared 监听器事件。在该事件函数中,我将执行 deactivateCallback 方法(如果已设置)。

canvas.on('selection:cleared', function() {
if (deactivateCallback) {
executeCallbackFunction(renderCallback, window);
deactivateCallback = null;
}
});

deactivateCallback = callback;
canvas.deactivateAllWithDispatch();

(注意:上面代码中的executeCallbackFunction与答案没有直接关系,只是执行一个作为字符串传入的函数)

关于fabricjs - Fabric.js renderAll 方法的回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com