我想知道如果canvas.getContext("2d")
保證每次調用時都返回相同的上下文實例。canvas.getContext(「2d」)是否每次都返回相同的實例?
我想知道的原因是因爲我試圖按照the advice in this answer這樣縮放的畫布看起來不模糊。但我在遊戲中創建了許多畫布,所以我想製作一個可供所有人使用的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")
每次都返回一個新的實例,這不會有任何效果。我需要返回畫布,因爲其他代碼使用它。
是否有更好的解決方案來解決這個問題?如果是這樣,我會接受並重命名我的標題。
編輯:後,我問我注意到this article說,你可以通過做ctx.canvas
得到從上下文畫布上。很好的提示。
請注意,您的代碼中的'canvas'返回一個jquery對象而不是DOM elem。對於性能,您可能會自然地創建畫布元素。 – hexalys