cocos2d-x:解决点击拖动按钮后,所在的layer监听不到触摸事件的问题

点击拖动按钮后,想让所在的layer监听到屏幕的触摸事件,可以把该按钮拖动开始的时候设置setTouchEnabled为false;
例:

#include "ui/UIButton.h"

bool myDemo::init() {

  

  // 设置点击事件
  EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create();
  listener->onTouchBegan = CC_CALLBACK_2( myDemo::onTouchBegan, this );
  listener->onTouchMoved = CC_CALLBACK_2( myDemo::onTouchMoved, this );
  listener->onTouchEnded = CC_CALLBACK_2( myDemo::onTouchEnded, this );

  // 绑定
  getEventDispatcher()->addEventListenerWithSceneGraphPriority( listener, this );

  

  // 按钮创建
  Button *btn = ***;      
  btn ->addTouchEventListener( CC_CALLBACK_2( myDemo::BtnCallBack, this ) );

  this->addChild( btn  );

}

void myDemo::BtnCallBack( Ref *p, cocos2d::ui::Widget::TouchEventType type ) {

  Button *btn = (Button *)p; //

  if ( type == Widget::TouchEventType::BEGAN ) {

    btn->setPosition( Vec2( btn->getPositionX() - 15, btn->getPositionY() + 15 ) );
    btn->setTouchEnabled( false );

  }

}

bool myDemo::onTouchBegan( cocos2d::Touch *touch, cocos2d::Event *event ) {

  return true;

}

void myDemo::onTouchMoved( cocos2d::Touch *touch, cocos2d::Event *event ) {

  CCLOG( "-------------------%d--------------" , a++);

}

void myDemo::onTouchEnded( cocos2d::Touch *touch, cocos2d::Event *event ) {

}

//当拖动按钮时,会进入onTouchMoved方法

时间: 2024-10-12 23:25:09

cocos2d-x:解决点击拖动按钮后,所在的layer监听不到触摸事件的问题的相关文章

页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新

要求页面实现验证码功能,点击"注册"按钮后,无论是否完成注册,验证码都能够自动刷新 <script> function validteCode() { var codes = new Array(4);       // var colors = new Array("Red","Green","Gray","Blue","Maroon","Aqua",&

vue使用element-ui的el-input监听不了键盘事件解决

vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="name" placeholder="账号" @keyup.enter="doLogin"></el-input> 在执行的时候事件是定义在input外面的div上的,所有没有响应. 解决方法需要在事

smartwizard 点击提交按钮后界面被刷新

项目中用到了smartwizard,对用户的入网配置进行了分步操作 这个插件给的范例中除了提供上一步下一步之外, 还可以添加其他的按钮 我这边额外添加了两个按钮,分别是提交和关闭 点击提交按钮时,异步向后台提交数据,步骤配置代码如下: $('#smartwizard').smartWizard({ selected: 0, theme: 'dots', cycleStep: false, transitionEffect:'fade', keyNavigation: false, showSte

vue中,点击button按钮后,页面上的input框自动聚焦

需求:点击button按钮,录入成功后,页面上的input框自动聚焦,快速进行下一次录入,提高效率 开始尝试了几种方法都没有成功 一.首先想到的用vue指令 v-focus,然而没有成功 <Input v-model="book.isbnOrIssn" @change.native="_getIsbn" @blur="_getIsbn" :disabled="snDisabled" v-focus placeholder

SQL Server2008安装后1433端口没监听问题

win2008系统安装完SQL Server2008后发现1433端口并没有监听,netstat -an并没有发现监听的1433端口,本机telnet localhost 1433也连不通,百度之后说打补丁,但是并没有用,后来是按照下面的方法解决的. (1) 关闭数据库引擎 打开配置管理器,找到 SQL Server(SQEXPRESS),右键单击,选择停止,即可停止数据库引擎 (2) .配置服务器端和客户端的TCP/IP协议:在SQL Server网络配置中选择SQLEXPRESS的协议,选择

Oracle修改ip或主机名后重建em和监听

oracle数据库修改ip和主机名的详细操作 修改ip操作 1.修改hosts文件中主机名对应的ip地址. 2.重启服务器网络 service network restart 3.一定要先删除原来的监听 emca -deconfig dbcontrol db -repos drop (如果不记得sysman的密码,可以先修改下alter user sysman identified by oracle;) 4.修改 $ORACLE_HOME/network/admin/listener.ora

win10系统点击关机按钮后无法关机的解决办法

先吐槽下:我越发的发现我现在成了修电脑的了,我的职位是linux运维,现在干的活很蛋疼,公司只有我一个运维,修电脑.搞网络.抬服务器.弄监控,搭环境.搞自动化发布.弄虚拟化都我一个人哇.好了,打住. 解决办法: 在控制面板里找到电源选项,找到更改当前不可用的设置,把启用快速启动对勾取消.重启电脑,反正我的是好了. 参考博客地址:http://www.xitongcheng.com/jiaocheng/win10_article_13072.html

解决iOS7自定义返回按钮后不能侧滑返回的问题

iOS7自带侧滑返回功能,但是自定义返回按钮之后,侧滑返回功能会失效,解决办法如下: 自定义一个UINavigationController,实现几个代理方法 @interface CustomNavigationController : UINavigationController @end #import "CustomNavigationController.h" @interface CustomNavigationController ()<UINavigationCo

点击button按钮后界面不自动刷新

问题: 我使用的button标签,在 标签中没有使用ruant=“server”的属性,但是在点击button时,界面还是会刷新 解决方式: 由于界面中含有form标签,而button标签的默认type是submit.所以相当于进行了form提交操作.为了是界面不刷新只需要在botton标签中加入type=“button”即可.