我有几个与水果相关的球。我想要它,这样当有人将球拖到相关的水果上时,它会调用一个动作(在这种情况下,跟踪'命中水果'),如果没有那么做其他事情。目前还没有发现这一点。
我发现我可以在舞台上添加一个偶数监听器来检测何时完成,但问题是我有多个球,每个球都有多个水果。任何人都可以告诉我如何做到这一点。
我来自PHP / Javascript背景,对于AS3来说,我只是一个初学者
ball1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
ball1.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseUpHandler(e:MouseEvent):void {
var obj = e.target;
if (e.target.hitTestObject("fruit1")) {
trace('hit fruit1');
} else {
trace('Not hit fruit');
}
obj.stopDrag();
}
答案 0 :(得分:1)
您可以使用数组来存储所有水果,并使用循环测试任何球被拖放:
var fruitArray:Array = new Array();
fruitArray.push(fruit1);
fruitArray.push(fruit2);
fruitArray.push(fruit3);
function onMouseUp(e:MouseEvent) : void
{
for(var j=0; j<fruitArray.length; j++) { // Every piece of fruit is tested..
if(e.target.hitTestObject(fruitArray[j])) { // ..against the ball being dragged
trace("hit fruit:", fruitArray[j]);
}
}
}
您需要使用类似的for循环系统将事件侦听器添加到球开始,并且您可以将水果分成不同类型的较小数组,并且仅针对特定水果阵列检查球