好吧,我好像搞不明白。我是displayObjectContainer新手,从我所读到的资料来看,我想我可能需要访问它,以检查是否存在HitTestObject。
因此,我有一个名为mcCar的类和另一个名为mcMainScreen的类,它通过我的主引擎类命名为"mainScreen“,比如在所有编码中使用Flash。现在,在mcMainScreen类中,我向它添加了一个电影剪辑对象,我把它命名为“灌木丛”,但是我在FlashCS6上的mcMainScreen类中添加了很多它们,只是视觉效果,没有代码或任何东西。现在,我通常只会给灌木丛取一个实例名,然后说:
if (mainScreen.bushes.hitTestObject(car))
{
trace("HIT");
}但是由于在我的mcMainScreen电影剪辑的舞台上添加了多个“灌木丛”的实例,它只能用一个灌木丛来追踪hitTest,而不是所有的灌木丛。因此,我知道我需要将它们添加到数组中,并使用for循环循环遍历所有的“灌木丛”,但是我很难正确地这样做。有没有一种方法,我不需要给他们实例名称,并可以只循环他们所有的hitTes?
如有任何帮助,敬请提前感谢!
发布于 2015-07-22 03:25:11
最好的方法是将灌木添加到数组中。
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实例检查数组中的每个实例。
https://stackoverflow.com/questions/31553037
复制相似问题