在flash中如何确定你触摸的是什么对象?

时间:2015-04-21 11:11:40

标签: actionscript-3 flash multi-touch

我正在为ios / iphone / ipad制作点击赛车游戏。我有3个具有touchevent监听器的对象。当汽车被触摸或敲击时,它们不会移动。有没有办法确定你触摸的是什么物体?我已经尝试过e.currentTarget,但这不起作用。这是我试过的代码。

感谢您提供的任何提示,帮助或建议。

//has been added 
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
//

cars0.addEventListener(TouchEvent.TOUCH_BEGIN, gasOn);
cars1.addEventListener(TouchEvent.TOUCH_BEGIN, gasOn);
cars2.addEventListener(TouchEvent.TOUCH_BEGIN, gasOn);

private function gasOn(e:TouchEvent):void {
        e.currentTarget.x+=10;
}

1 个答案:

答案 0 :(得分:1)

Reading the Documentation告诉我们事件,例如TouchEvents,确实有名为targetcurrentTarget的属性。

顾名思义,目标属性告诉我们被点击的人。

尝试以下方法:

function gasOn(e:TouchEvent):void{
   if(e.target == cars0){
       //you clicked cars0
   }else if(e.target == cars1){
       //you clicked cars1
   }else if(e.target == cars2){
       //you clicked cars2
   }
}

如果这不起作用,你可以尝试将event.target转换为汽车类(我假设它是一个单独的类?)。即:

function gasOn(e:TouchEvent):void{
    //Car in this case would be your Class for the cars objects
    var car:Car = e.target as Car;
    if(car == cars0){...//same as above
}