Java 父母是否';再次触碰触发孩子';s

Java 父母是否';再次触碰触发孩子';s,java,android,andengine,Java,Android,Andengine,我有一个精灵,旁边有一个孩子。当触摸图像时,图像会旋转180度,但为了保持图像在原位,我只使用父调用rotate。这意味着,如果子对象被触摸,它将调用其父对象的旋转。当触摸子对象时,这可以正常工作,但我发现如果触摸父对象,那么也会调用子对象的onreatouch(),然后调用父对象的rotate,从而撤消旋转 p>我在代码中找不到任何一个在父进程中调用孩子的OnReaTouthEd()的消息,但是这是发生了什么? 这里,我把场景看作父对象和矩形作为子对象。 Scene mScene = new

我有一个精灵,旁边有一个孩子。当触摸图像时,图像会旋转180度,但为了保持图像在原位,我只使用父调用rotate。这意味着,如果子对象被触摸,它将调用其父对象的旋转。当触摸子对象时,这可以正常工作,但我发现如果触摸父对象,那么也会调用子对象的onreatouch(),然后调用父对象的rotate,从而撤消旋转


<> p>我在代码中找不到任何一个在父进程中调用孩子的OnReaTouthEd()的消息,但是这是发生了什么?

这里,我把场景看作父对象和矩形作为子对象。

Scene mScene = new Scene();
mScene.setOnSceneTouchListener(this);

Rectangle rectangle = new Rectangle(x,y,width,height){
     public boolean onAreaTouch(){
          if(pSceneTouchEvent.isActionDown()){
               return true;
          }
          return false;
     }
};

mScene.registerTouchArea(rectangle);
mScene.attachChile(rectangle);

public boolean onSceneTouchEvent(){
      if(pSceneTouchEvent.isActionDown()){
           return true;
      } else if(pSceneTouchEvent.isActionUp()){
           return true;
      }
      return false;
}
在上面的代码片段中,我编写了理解这个概念所必需的所有基本内容。这里的矩形是场景的子对象。矩形包含区域接触,有三个事件:向下、移动和向上。我只在action down事件中返回true,所以不调用父对象action down事件

对于子对象的所有其他事件,我返回false,以便其父对象执行剩余动作,如“移动”和“向上”动作


若子对象直接返回真到OnAreTouch方法,那个么父对象场景触摸方法根本不调用。这是一个小例子,我试图通过它来解释这个概念。

TouchArea只是一个由场景维护的简单列表,根本没有父子关系。您的问题可能与您的触摸区域是否重叠(如果重叠,哪一个在另一个之前)和/或您的触摸区域事件句柄中的返回值有关?这些区域不重叠。然而,返回值将如何影响事情?如果子对象返回false,则只调用父对象方法,否则只执行子对象接触方法。我的代码返回
super.onreatouched(41;
,现在它只返回true,并按需工作。谢谢如果你们中有人做出真实的回答,我会接受的。