在 flash 中如何确定您触摸的是什么对象?
In flash how do determine what object you touch?
我正在为 ios/iphone/ipad 制作一款攻牙赛车游戏。我有 3 个具有触摸事件侦听器的对象。当汽车被触摸或敲击时,它们不会移动。有没有办法确定您触摸的是什么物体?我试过 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;
}
Reading the Documentation 告诉我们事件(例如 TouchEvents)确实具有名为 target
和 currentTarget
.
的属性
顾名思义,目标属性告诉我们点击了谁。
尝试以下操作:
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 转换为汽车的 Class(我假设它是一个单独的 class?)。即:
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
}
我正在为 ios/iphone/ipad 制作一款攻牙赛车游戏。我有 3 个具有触摸事件侦听器的对象。当汽车被触摸或敲击时,它们不会移动。有没有办法确定您触摸的是什么物体?我试过 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;
}
Reading the Documentation 告诉我们事件(例如 TouchEvents)确实具有名为 target
和 currentTarget
.
顾名思义,目标属性告诉我们点击了谁。
尝试以下操作:
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 转换为汽车的 Class(我假设它是一个单独的 class?)。即:
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
}