Cocos ui控件Button 一个误导人的小错误
来源:互联网 发布:淘宝付款不发货骗术 编辑:程序博客网 时间:2024/04/30 10:12
版本:cocos2d-x 3.12 语言:C++
今天开始996,终于要开始加死人不偿命的生活了。哈哈,今天给大家带来一个我毕设中的小失误。
不知道还有没有人在用CocosStudio,我们项目中可怜都没得用,然后都是自己写ui的,别的组已经在使用了,感觉用起来很舒服的,不知道为什么停更了,然后现在只有个js的creator,真不知道触控那帮子人怎么想的。
反正在我之前的毕设中,使用到了一个ui界面放了一个Button的控件,来看一下代码(我现在知道怎么插代码了):
Button* button= Button::create("res/HelloWorld.png");button->setPosition(Vec2(200, 200));this->addChild(button);button->addTouchEventListener(this,toucheventselector(SceneTest::touch));
这是当然是测试的代码,实际中的代码就不拿出来了。创建了一个Button后,设置了一个常规属性,最后添加了触碰事件。
再来看看触碰事件:
void SceneTest::touch(Ref* target,TouchEventType type){ CCLOG("you touch me! you bitch!");}
运行一下:
没有任何问题,但是有个挺不爽的地方:
虽然可以运行,但是上面警告声明被否决了,毕设期间也不懂,反正就这么过了,这几天又仔细研究了一下。
首先来看看另一种的注册方式:
button->addClickEventListener(CC_CALLBACK_1(SceneTest::click, this));
使用Click进行注册:
void SceneTest::click(Ref* target){ CCLOG("you love me");}
打印结果:
Click只在Ended的时候会触发。好了,没有任何问题。但是addTouchEventListener的方式应该是2.0时代使用的方法,我们现在使用3.0的方法试试:
button->addTouchEventListener(CC_CALLBACK_2(SceneTest::touch, this));
发生错误了:
一堆,不过我在我自己项目中并不是报这个错误,报的是什么std::invoke为找到重载函数,如果报这个错误的话,我早就解决了,大家仔细看看。
没错,把方法这么改写就OK了:
touch(Ref*target,Widget::TouchEventTypetype)
Widget::TouchEventType和TouchEventType并不是同一个东西,我晕。
昨天draw方法相关的一个标志转换问题解决后,警告大幅度的减少了。今天又解决了这个问题,我想只要耐心这些警告也都不会出现,每次要在100多个警告里面找一个错误实在难受。
总结:
UI控件中写回调函数,不要忘记第二个参数是Widget中的TouchEventType,虽然他们的取值是一样的、数量也是一样的、表示的内容也是一样的。用最近流行的话说就是MDZZ。
- Cocos ui控件Button 一个误导人的小错误
- cocos2d-x-3.13\cocos\ui控件Button
- cocos creator Button控件用法
- 一个自动转换的误导
- cocos-lua学习笔记(六)一个简单的Button
- UI中常用的控件ImageView\Button
- 【TGUI】从零开始搭建一个基于Unity的UI库 02 button控件的实现(1)
- 【TGUI】从零开始搭建一个基于Unity的UI库 02 button控件的实现(2)
- Cocos-Lua UI及控件
- UI控件 -> Button
- (cocos 笔记) 获取studio设计的UI控件
- cocos使用UI控件需要包含的头文件
- mysql 一个被误导的错误: mysql jdbc连接,数据库ip变成了本地ip?
- C++重载函数的一个误导
- java button tooltip的一个小例子
- UI控件----BUTTON 实例总结
- cocos2d-x-3.13\cocos\ui控件CheckBox
- cocos2d-x-3.13\cocos\ui控件TextAtlas
- 【桌面编辑】GridView的使用--2016/8/16-9:58
- vc socket在debug模式下可以正常通讯,在release模式下经常通讯失败
- 【STL】非变异算法之循环
- 上拉电阻和下拉电阻的作用详解
- MD5 32位 小写加密和大写加密
- Cocos ui控件Button 一个误导人的小错误
- ubuntu14.04安装cuda6.5简易版本,易操作
- 像素级实现设计稿笔记
- 《Motion Design for iOS》(四十三)
- 笔试题--“完数”(4)
- SDUTACM n a^o7 !
- Volley(2)源码分析
- photoshop启动提示:$$$/ADMDialog/ifontproblemWarning=解决办法
- 有12个苹果,1只香蕉,分给3个小孩,每个小孩都必须最少分到一个水果,求能分多少种?