gpt4 book ai didi

java - parent 的 onAreaTouched 会触发 child 的吗?

转载 作者:行者123 更新时间:2023-11-29 05:44:09 24 4
gpt4 key购买 nike

我有一个 Sprite ,旁边有一个附加的 child 。触摸时图像会旋转 180 度,但为了将图像保持在原位,我只让父级调用旋转。这意味着如果 child 被触摸,它会调用其 parent 的旋转。这在 child 被触摸时工作正常,但我发现如果 parent 被触摸,那么 child 的 onAreaTouched() 也会被调用,然后调用 parent 的旋转,这会撤消旋转。

我在代码中找不到任何说明当 parent 的 onAreaTouched() 被调用时 child 的 onAreaTouched() ,但这是发生了什么吗?

最佳答案

这里我将 Scene 作为父对象,将 Rectangle 作为子对象。

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;
}

在上面的代码 fragment 中,我写下了理解这个概念所必需的所有基本内容。这里的矩形是场景的 child 。矩形包含区域触摸,具有向下、移动和向上三个事件 Action 。我只在 action down 事件中返回 true,因此不会调用父对象 action down 事件。

对于子对象的所有其他事件,我返回 false,因此其父对象执行剩余的 Action ,例如移动和向上 Action 。

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

关于java - parent 的 onAreaTouched 会触发 child 的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com