私はhtml5キャンバスで描画アプリケーションを作っています。私はOOPを使用して、すべてのグローバル変数を回避しようとしています。私はPainLabクラスおよび描画クラスオブジェクト指向プログラミングとonmousedown関数の問題
var PaintLab = function() {
this.drawing = new Drawing();
//Define some methods
var self = this;
canvas.addEventListener('click', MouseDown, self, false);
};
var Drawing = function() {
this.position = { x: 4, y: 200 };
this.size = { width: 500, height: 500 };
};
あなたは私がここにキャンバスをクリックすると、ユーザーのイベントリスナーを持って見ることができるように何のMouseDown機能であるがあります。
var MouseDown = function(paintLab, evt) {
var mouseX = evt.clientX;
var mouseY = evt.clientY;
//Check is user clicked the drawing which is a square element on the canvas
if (x >= paintLab.drawing.position.x && x <= paintLab.position.x + paintLab.drawing.size.width &&
y >= paintLab.drawing.position.y && y <= paintLab.position.y + paintLab.drawing.size.height) {
//Draw to canvas
}
};
このコードを使用すると、clientX/YとpaintLabはデニュアされません。ほとんどのPaintLab()のスコープはこの情報を削除しますが、これを克服する最善の方法は何ですか?私は助けていただきありがとうございます!
これはclientXとYの問題を取り除きましたが、現在はdrawing.position.xは未定義です。これを解決するには何ができるのですか?また、mouseDown関数を宣言するためにプロトタイプを使用しました。 –
'drawing'プロパティがどこから来たのかわかりません。元のコードでもうまくいかなかったでしょう...まず最初にどのようにコードを取得しましたか? –
私は描画のクラスを元の質問に入れて助けてくれることを願っています!これまでのすべての助けにも感謝します。 –