0

如果我做了一个 if 语句,并且我希望它在目标击中另一个影片剪辑时执行某些操作(我已经知道如何执行此操作)但前提是它是正确的目标,我将如何执行此操作?

function stopdrag(e:MouseEvent):void{
    e.currentTarget.stopDrag();
    if(e.currentTarget.hitTestObject(destination) || //right here is where the script would `check the name of the target// ){`
        scaryface.visible=true;
    }
}

我如何确保它仅在目标是数组中的特定值时才有效?

4

4 回答 4

0

你可以设置一个 switch/case 或嵌套 if 语句......如果你没有大量的目标......例如:

if (e.currentTarget.hitTestObject(destination1){
doSomething();
}else if{
(e.currentTarget.hitTestObject(destination2){
doSomethingElse();
}

否则,像上面 Vipul 的解决方案是非常明智的

于 2013-03-08T19:42:47.577 回答
0

您可以在创建该数组时创建该目标的自定义属性,例如 ID (arr[0].ID = "abc") 或类似的东西,然后您可以检查 ID。

如果条件是您尝试匹配数组中的任何值,那么您可以检查 for 循环中的索引。

于 2013-03-08T05:58:04.093 回答
0

我不能确切地说出你在问什么。如果您尝试检查目标是否包含在数组中,您可以使用类似以下代码的内容:

function stopdrag(e:MouseEvent):void{
    e.currentTarget.stopDrag();
    if(e.currentTarget.hitTestObject(destination) && yourArray.indexOf(e.currentTarget) > 0){
         scaryface.visible=true;
    }
}

这将检查目标是否与目标发生冲突,如果是,将检查目标是否包含在 yourArray 中。

于 2013-03-08T06:49:00.623 回答
0

我想不考虑性能的最简单和最懒惰的方法是

if(array.indexOf(e.currentTarget) >= 0){
    //do something
}
于 2013-03-08T21:48:48.067 回答