首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用同一个类的多个对象进行HitTestObject?

如何使用同一个类的多个对象进行HitTestObject?
EN

Stack Overflow用户
提问于 2015-07-22 02:50:36
回答 1查看 1K关注 0票数 0

好吧,我好像搞不明白。我是displayObjectContainer新手,从我所读到的资料来看,我想我可能需要访问它,以检查是否存在HitTestObject。

因此,我有一个名为mcCar的类和另一个名为mcMainScreen的类,它通过我的主引擎类命名为"mainScreen“,比如在所有编码中使用Flash。现在,在mcMainScreen类中,我向它添加了一个电影剪辑对象,我把它命名为“灌木丛”,但是我在FlashCS6上的mcMainScreen类中添加了很多它们,只是视觉效果,没有代码或任何东西。现在,我通常只会给灌木丛取一个实例名,然后说:

代码语言:javascript
复制
if (mainScreen.bushes.hitTestObject(car))
{
   trace("HIT");
}

但是由于在我的mcMainScreen电影剪辑的舞台上添加了多个“灌木丛”的实例,它只能用一个灌木丛来追踪hitTest,而不是所有的灌木丛。因此,我知道我需要将它们添加到数组中,并使用for循环循环遍历所有的“灌木丛”,但是我很难正确地这样做。有没有一种方法,我不需要给他们实例名称,并可以只循环他们所有的hitTes?

如有任何帮助,敬请提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 03:25:11

最好的方法是将灌木添加到数组中。

代码语言:javascript
复制
var bushArr:Array = new Array();
for(var i=0; i<mainScreen.numChildren; i++){
  var bush = getChildAt(i) as Bush;
  bushArr.push(bush);

}
this.addEventListener(Event.ENTER_FRAME, onLoop);
function onLoop(evt:Event){

   for(var j=0;j<bushArr.length;J++){

      var bush:Bush = bushArr[j] as Bush;

      if (bush.hitTestObject(car))
      {
         trace("HIT");
      }

   }
}

逻辑是,您需要创建布什并将其存储在一个数组中。在一个lop中,您将使用car实例检查数组中的每个实例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31553037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档