1

如何选择图层中具有某些特征的所有形状/精灵?

例如所有具有特定 x 或 y 位置的形状,还是具有特定属性的形状?

我希望能够遍历我的游戏中具有特定特征的所有精灵并用它们做事。

例如,我可以执行以下操作:

  // loop through the 'alien' sprites, selecting dead ones only up front.
  var deadAliens = layer.get('alien','shield==0')
  deadAliens.each(function(deadAlien) {
     deadAlien.remove(); // remove dead alien
  });

代替:

  // loop through 'alien' sprites and use 'if' statements to select dead ones.
  var aliens = layer.get('alien') 
  aliens.each(function(alien) {
     if (alien.getAttr('shield')==0) alien.remove(); // remove dead alien
  });

关键是我想用'get'来执行选择,而不是在循环中使用'if'语句。

编辑:更好的是:

layer.get('*[search criteria]*').remove();

...直接将该remove()方法应用于选择。这将比我上面的第一个示例更整洁。

谢谢

欧文

4

1 回答 1

0

要回答您的问题,目前您必须采用您提到的第二种方法,即使用 each 方法(),并检查每个结果的属性。如果社区有足够的需求,KineticJS 将来可能会支持比较器功能。

于 2013-09-17T00:07:53.403 回答