我的阵列有问题。我创建了它们(不确定是否设计正确),但是很难理解如何对其进行检查。

我的数组是这样创建的:

id              = i++;
uid             = my_id;
imgwidth        = img[0].width;
imgheight       = img[0].height;
spritea[uid]    = new Array();
spritea[uid][0] = abposx;
spritea[uid][1] = abposy;
spritea[uid][2] = imgwidth;
spritea[uid][3] = imgheight;


我只是假设这是存储有关图像位置信息并为其赋予唯一ID的正确方法。

然后,我想对以下示例条件进行检查:

if (x > spritea[0] && x < spritea[0]+spritea[2]){
    var uid = //get the UID of the array ;
}


但是我认为我的数组结构错了吗?有什么建议吗?

最佳答案

使用一个对象。比较干净:

function create_image(id) {
    this.id = id;
    this.height = 0;
    this.width = 0;
    this.x = 0;
    this.y = 0;
}

my_image = create_image(++i);
my_image.width = img[0].width;
my_image.height = img[0].height;
my_image.x = abposx;
my_image.y = abposy;​




对于搜索,请尝试以下操作:

found_image = false;

for (var i = 0; i < spritea.length; i++) {
  if (spritea[i].width == 4) {
    found_image = spritea[i];
    break;
  }
}

if (found_image) {
  // found_image is your image
}

07-26 04:21