gpt4 book ai didi

javascript - canvas.getContext ("2d") 是否每次都返回相同的实例?

转载 作者:太空狗 更新时间:2023-10-29 13:12:27 26 4
gpt4 key购买 nike

我想知道 canvas.getContext("2d") 是否保证在每次调用时都返回相同的上下文实例。

我想知道的原因是因为我正在尝试关注 the advice in this answer这样我缩放的 Canvas 看起来就不会模糊。但是我在我的游戏中创建了很多 Canvas ,所以我想制作一个可供所有人使用的 createCanvas 函数。我希望它看起来像这样:

function createCanvas(x, y) {
canvas = $("<canvas width='" + x + "' height='" + y + "'></canvas>")[0];
ctx = canvas.getContext("2d");
ctx.imageSmoothingEnabled = false; //modify the context
return canvas; //return the canvas, not the ctx
}

如果 canvas.getContext("2d") 每次都返回一个新实例,这不会有任何效果。我需要归还 Canvas ,因为其他代码使用它。

这个问题有更好的解决方案吗?如果是这样,我会接受并重命名我的头衔。


编辑:在我询问之后,我注意到了 this article表示您可以通过执行 ctx.canvas 从上下文中获取 Canvas 。非常好的提示。

最佳答案

对于任何一个 Canvas 元素,canvas.getContext("2d") 始终返回该 Canvas 元素的唯一上下文。

来源:HTML 5.2 §4.2 Scripting

Return the same object as was return the last time the method was invoked with this same first argument.


如果您使用 document.createElement("canvas")(或等效的 jquery)创建一个新的 Canvas 元素,那么该新 Canvas 上的 getContext 将为该新 Canvas 返回一个唯一的上下文。

关于javascript - canvas.getContext ("2d") 是否每次都返回相同的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24471944/

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