KineticJS选择性'获得'

时间:2013-09-13 11:40:19

标签: kineticjs sprite

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

例如,所有具有特定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()方法直接应用于选择。这比我上面的第一个例子更整洁。

由于

欧文

1 个答案:

答案 0 :(得分:0)

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