私は JavaScript を学んでおり、現在 html5 キャンバス API で遊んでいます。最初にキャンバス要素を作成する必要があり、2d/3d コンテキスト (接続されていない 2 つの変数) を取得する必要があるため、これら 2 つを 1 つにマージするものを作成することが論理的に思えました。
アイデアは、グラフィックス(gfx
)オブジェクト(実際にはコンテキストオブジェクト)を持ちgraphics.canvas
、キャンバス要素への参照であるため、キャンバスgfx.fillRect(0,0,150,75);
のサイズを変更したり、キャンバスのサイズを変更したりできますgfx.canvas.width = x;
...
context
コンストラクター関数を作成しようとすると、実際にはうまくいきません。プロパティとしてオブジェクトを返すソリューションを思いつきましたがcanvas
、これが正しい方法かどうかはわかりません。
この問題に対する最善のアプローチは何でしょうか?
これが私のコードです:
function Canvas (context, width, height) {
var canvas = document.createElement('canvas'),
contex = canvas.getContext(context);
this = contex; // <<-- Getting error here
this.canvas = canvas;
this.canvas.width = width;
this.canvas.height = height;
this.append = function () {
document.body.appendChild(this.canvas);
};
}
function Canvas2 (context, width, height) {
var canvas = document.createElement('canvas'),
contex = canvas.getContext(context);
contex.canvas = canvas;
contex.canvas.width = width;
contex.canvas.height = height;
contex.append = function () {
document.body.appendChild(this.canvas);
};
return contex;
}
var gfx = new Canvas('2d', 400, 400),
gfx2 = Canvas2('2d', 400, 400);
gfx.append();
gfx2.append();