cocos2dx 3.x(多个按钮button执行同一事件的区分)
//
// ATTGamePoker.hpp
// MalaGame
//
// Created by work on 2016/10/18.
//
// #ifndef ATTGamePoker_hpp
#define ATTGamePoker_hpp #include <stdio.h>
#include <cocos2d.h> class ATTGamePoker : public cocos2d::Layer
{ private: cocos2d::ui::Button * m_btnHold[];//五个按钮
cocos2d::Sprite * m_holdGlitter[];//发光特效/*按钮点下时出现,松开时消失*/ public: virtual bool init(); void holdCB(Ref *pSender, cocos2d::ui::Widget::TouchEventType type);//声明点击事件 CREATE_FUNC(ATTGamePoker); }; #endif /* ATTGamePoker_hpp */
//
// ATTGamePoker.cpp
// MalaGame39
//
// Created by work on 2016/10/18.
//
// #include "ATTGamePoker.hpp"
#include <SimpleAudioEngine.h> using namespace cocos2d;
using namespace cocos2d::ui; bool ATTGamePoker::init()
{
if (!Layer::init())
{
return false;
} for (int i=; i<; i++) {
auto soundbg=cocos2d::ui::Scale9Sprite::createWithSpriteFrameName("gobang_option_sound_off.png");
m_btnHold[i]=ControlButton::create(soundbg);
m_btnHold[i] ->setPosition(50*i, );
m_btnHold[i] -> setEnabled(false);
m_btnHold[i]->setTag(i+);//设置tag值便于区分
m_btnHold[i]->addTouchEventListener(CC_CALLBACK_2(ATTMyGameScene::holdCB, this));
m_holdGlitter[i] = static_cast<Sprite *>(m_rootNode->getChildByName(StringUtils::format("att_8_glitter_%d",i)));
m_holdGlitter[i] ->setPosition(50*i, ); m_holdGlitter[i]->setVisible(false);//设置发光体全部隐藏
m_holdGlitter[i]->setTag(i+);
}
; return true;
} //触摸事件的实现方法
void ATTMyGameScene::holdCB(Ref *pSender, cocos2d::ui::Widget::TouchEventType type)//保牌
{ if (type == Widget::TouchEventType::BEGAN)//判断点击类型,按钮按下生效
{
int tag = ((Button*)pSender)->getTag();//通过点击事件来获取当前按钮的tag值,就是这一句话来区分当前哪个button响应来此次事件 for (int i=; i<; i++) {
m_holdGlitter[i]->setVisible(false);
if (+i==tag+) {//判断通过tag值拿到发光体精灵
m_holdGlitter[i]->setVisible(true);//让其显示
}
}
}
else if (type == Widget::TouchEventType::ENDED)//按钮松开时生效
{ for (int i=; i<; i++) { m_holdGlitter[i]->setVisible(false);//送开时全部隐藏 }
} }
cocos2dx 3.x(多个按钮button执行同一事件的区分)的更多相关文章
- 消除点击连接或者按钮或者执行onclick事件时出现的边框
css中添加 *:not(input) { font-family: sans-serif; font-size-adjust: none; -webkit-user-select: none; -w ...
- ASP.NET 解决在点击Button执行服务器事件之前验证用户输入并阻塞
在网站项目开发时,为了减少用户的错误性的操作,很多时候我们都需要做一些必要的JS验证来提醒用户,比如:“输入的值不符合规则,请重新输入”.“提交后无法修改,您确定要继续吗?”友好性的提示. 这时候我们 ...
- .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器
1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...
- input 的blur事件之后button的onclick事件不执行解决方案
最近发现网页程序中有个BUG,就是在input标签输入框中输入完数据后,直接点击“取消” 按钮的时候.出现网页崩死的情况: 经过小主酸菜我,各种方法的尝试后,找到一个初步可以解决的方案,在这里分享给大 ...
- 在jQuery ajax中按钮button和submit的区别分析
在使用jQuery ajax的get方法进行页面传值,不能用submit,否则无刷新获取数据展示 点击submit提交按钮,sendPwd.php通过$_POST接收传过来的值,然后echo一段数据. ...
- 制作按钮(Button)
按钮的核心作用 1.按钮能接收单击并触发响应事件. 2.按钮被单击时能同时触发多个响应事件. 3.按钮可以有普通.悬停.单击.禁用等多个状态的不同表现. 4.广泛的说,按钮的核心在于接收事件,任何可以 ...
- 前端表单中有按钮button自动提交表单
问题描述 在设计表单时,表单内有一个按钮<button>,该按钮是用来获取其他数据或执行其他操作的.并不是让他提交表单. 解决方案 1) 设置 form 的 onsubmit='retur ...
- 按钮在执行frame动画的时候怎么响应触发事件?
按钮在执行frame动画的时候怎么响应触发事件? 代码中效果(请注意,我并没有点击到按钮,而是点击到按钮的终点frame值处): 对应的代码: // // ViewController.m // Ta ...
- button 按钮,结合onclick事件,验证和提交表单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- 分布式缓存(Cache)
1. 单层分布式cache. 如memcache. 2. 多层分布式cache. 服务端和调用者本地都存放cache, 使用udp组播解决cache同步更新问题,但不可靠. 3. 改进的多层分布式ca ...
- PHP 错误与异常 笔记与总结(7)将错误日志以邮件方式发送
当系统发生了很严重的问题,需要立刻发送给管理员.可以通过 error_log() 将错误以邮件形式发送到邮箱. 在 php.ini 中设置: sendmail_from = 472323087@qq. ...
- js之操作JSON数据
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...
- php 请求参数限制
公司有个群发短信的小项目,项目上线了很久也没有什么问题,最近有商家说 我短信群发不能用 现象是:发现有时候可以发送,有时候不可以发送,看截图发送的手机数量不一样 通过调试php代码发现 php 只接受 ...
- SecureCRT SSH VMware Ubuntu
Ubuntu 10.4 装完后网络OK. NAT模式下, 可以上网. 宿主机和客户机可以彼此ping通. 主要是检查SSH服务, 和防火墙是否关闭(UBUNTU 默认没有安装SSH, 默认启动了防火墙 ...
- CLR调试报错“Visual Studio远程调试监视器 (MSVSMON.EXE) 的 64 位版本无法调试 32 位进程或 32 位转储。请改用 32 位版本”的解决
Win7 64位电脑上进行visual studio的数据库项目的CLR存储过程进行调试时,报错: ---------------------------Microsoft Visual Studio ...
- URL编码数据转换为JSON数据
NSString *urlString; urlString=[self URLDecodedString:urlString]; -(NSString *)URLDecodedString:( ...
- sqlserver快速查找所有存储过程中是否包含某字符
--将text替换成你要查找的内容 select name from sysobjects o, syscomments s where o.id = s.id and text like '%tex ...
- 【Android开发学习笔记】【第十课】运动事件 之——触摸屏
概念 触摸屏 (TouchScreen) 和 滚动球(TrackBall)是Android 中除了键盘之外的主要输入设备. 而这两个事件都可以用运动事件(MotionEvent)用于接收他们的信息 直 ...
- 设计模式:命令模式(Command)
定 义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排列或者记录请求日志,以及支持可撤销的操作. 结构图: Command类: abstract class Comma ...