javascript - Fabric.js 中的多个 Canvas (页面)

标签 javascript canvas fabricjs

我正在尝试通过单击按钮使用 Fabric.js 创建多个页面作为 Canvas - 例如每次单击该按钮时都会创建一个新页面。

我遇到的问题是我希望这些 Canvas 使用在加载页面时创建的相同功能,并且仅分配给初始 Canvas 。有没有办法创建 Canvas 实例并仍然使用那些相同的功能?

最佳答案

我对您的问题的理解是您在单个 HTML 文档中创建了多个 Canvas 。

当您将函数分配给您的初始 Canvas 时,您的意思是将它们作为方法添加到您的 Canvas 对象中吗?我认为最好将 Canvas 包装在另一个 JavaScript 对象中并将方法分配给该对象。此外,您可以使用原型(prototype)为类定义方法,然后该类的实例可以访问这些方法。例如:

/* MyCanvas class */
function MyCanvas() {
    /* Creates a canvas */
    this.canvas = document.createElement("canvas");
    document.body.appendChild(this.canvas);
};

/* Define MyCanvas prototype */
MyCanvas.prototype = {
    /* Define getCanvas method */
    getCanvas: function() {
        /* Returns the real canvas object */
        return this.canvas;
    },

    /* Define get2DContext method */
    get2DContext: function() {
        /* Returns the 2D context */
        return this.canvas.getContext("2d");
    }
}

/* Create two canvases */
var myCanvas1 = new MyCanvas();
var myCanvas2 = new MyCanvas();

/* Access MyCanvas methods */
var canvas1 = myCanvas1.getCanvas();
var ctx2 = myCanvas2.get2DContext();

顺便说一下,我从未使用过 fabric.js。

关于javascript - Fabric.js 中的多个 Canvas (页面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276861/

相关文章:

javascript - 如何在 JavaScript 中执行与 php str_replace 等效的操作?

javascript - 为什么 Node Javascript 中大型 Array 对象的内存分配行为会发生变化? ( docker 容器)

javascript - JSON.stringify 和 JSON.parse 在 IE9 中不起作用?

javascript - 白色背景打破了我的 Canvas

javascript - 布料js : objects grouping is not working correctly

html - 如何使用 Fabric.js 一次旋转所有 Canvas 对象?

javascript - Backbone 模型。获取不设置值

javascript - 使用离屏渲染技术在 Canvas 上绘制多个图像

angularjs - 当包含的对象改变大小时,Fabric.js 自动调整组控件大小

html - 在另一个 Canvas 上绘制 Canvas 是模糊的。我该如何解决?