接的快手百度的短视频资讯,想在上边做几个图标,如果把cocos 放到最上层 就会导致 资讯和视频没法拨动 和点击。
有好的解决方案吗?
cocos的点击事件 怎么穿透到 原生fragment上。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
25条回答 默认 最新
关注 获得0.30元问题酬金 引自免费微信小程序:皆我百晓生
为了解决Cocos2d-x游戏引擎中的点击事件穿透到Android原生Fragment上的问题,你需要确保Cocos2d-x的节点设置允许触摸通过,并且正确配置AndroidManifest.xml文件以处理触摸事件。以下是详细的步骤:
- 在Cocos2d-x项目中,你需要创建一个自定义的CCDirector类(如果你还没有的话),并重写其
setTouchPriority
方法,以便让触摸事件优先传递给底层的Android组件。首先,创建一个新的Java类,例如MyDirector.java
,继承自org.cocos2dx.lib.CCDirector
:
package com.your_package_name; import org.cocos2dx.lib.CCDirector; import android.view.MotionEvent; public class MyDirector extends CCDirector { public void setTouchPriority(int priority) { // 设置触摸优先级,让底层的Android组件接收触摸事件 super.setTouchPriority(priority - 1); } }
然后,在你的C++代码中,替换默认的CCDirector实例为这个新创建的类。这通常在你的主应用类(例如
AppDelegate.cpp
)的初始化函数applicationDidFinishLaunching()
中完成:#include "MyDirector.h" bool AppDelegate::applicationDidFinishLaunching() { // ... auto director = std::make_shared<MyDirector>(); // ... return true; }
- 接下来,你需要在AndroidManifest.xml中为包含Cocos2d-x的游戏Activity设置合适的属性,确保触摸事件可以传递给底层的Fragment。打开AndroidManifest.xml文件,找到你的游戏Activity标签,添加以下属性:
<activity android:name=".YourGameActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:windowSoftInputMode="adjustResize"> <!-- 添加此属性,使得触摸事件可以穿透 --> <meta-data android:name="android.window.isFloating" android:value="false" /> <!-- 添加此属性,使触摸事件不会被拦截 --> <meta-data android:name="android.window.translucentNavigation" android:value="true" /> <!-- 添加此属性,使触摸事件不会被拦截 --> <meta-data android:name="android.window.translucentStatus" android:value="true" /> </activity>
- 最后,确保你在Cocos2d-x的场景中设置了正确的触摸监听器和事件处理。对于不希望影响的Cocos2d-x节点,可以通过设置它们的触摸响应状态为NO_TOUCH_AREAS,这样它们就不会阻止触摸事件向下传递。例如,如果你有一个名为
myNode
的节点,你可以这样做:
myNode->ignoreChildrenCollisions(true); myNode->setTouchEnabled(false);
按照以上步骤操作,你应该能解决Cocos2d-x点击事件穿透到Android原生Fragment的问题。这样,用户就可以在Cocos2d-x元素之上正常地与原生Fragment进行交互了。
解决 无用评论 打赏 举报 编辑记录- 在Cocos2d-x项目中,你需要创建一个自定义的CCDirector类(如果你还没有的话),并重写其
悬赏问题
- ¥15 无源定位系统的时差估计误差标准差
- ¥15 请问这个代码哪里有问题啊
- ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
- ¥15 通过GaussianView进行结构微调消除虚频
- ¥15 调用transformers库
- ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
- ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
- ¥15 openpcdet自制数据集评估bev精度和3d精度相同
- ¥15 excel 上下按钮 显示行
- ¥20 云卓h12pro 数传问题