【发布时间】:2012-08-29 19:09:59
【问题描述】:
我试图在屏幕上显示三张扑克牌,由于某种原因,每次我运行代码时都会出现类型错误,我已经尝试了一切尝试修复它,但没有任何效果。我认为问题出在数组/对象构造函数中,但我认为一切都在其中。
"use strict";
function main(){
var cvs = document.getElementById("foo");
var ctx = foo.getContext("2d");
function Card(posX, posY, imgX, imgY){
this.posX = posX;
this.posY = posY;
this.imgX = imgX;
this.imgY = imgY;
this.width = 97;
this.height = 129;
}
Card.img = new Image();
Card.img.src = "allcards.png";
var cards = [new Card(0,0,0,0), new Card(400,400,194,258), new Card(200,200,291,387)];
var greaterX = false;
var lessX = false;
var greaterY = false;
var lessY = false;
var offsetX;
var offsetY;
setInterval(draw, 10);
function draw(){
ctx.fillStyle="rgb(0,255,255)";
ctx.clearRect(0,0,600,600);
ctx.drawImage(Card.img,cards[1].imgX,cards[1].imgY,Card.width,Card.height,cards[1].posX, cards[1].posY);
ctx.drawImage(Card.img,cards[2].imgX,cards[2].imgY,Card.width,Card.height,cards[2].posX, cards[2].posY);
}
}
【问题讨论】:
-
错误是什么?一个问题是您使用的 Card.width 和 Card.height 看起来不像已定义。
-
有一个类型错误总是出现在绘图函数的第 3 行
-
@MarkRhodes - Card.width 和 Card.height 在构造函数中定义
-
@CRS:不,他们不是。
cards[...].width在构造函数中定义,但Card.width没有在任何地方定义。 -
您是否想要,例如,cards[1].width 而不是 Cards.width? (高度相同)
标签: javascript arrays class object