cocos2dx-CCEditBox
声 明 本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。 gl.paea.cn版权所有。 |
Hello,大家好,欢迎回到“和屌丝一起学cocos2dx”系列教程。上节我们说到了CCMenu菜单,不知道大家练习的怎么样了呢?哈哈,一定是没好好练习吧。可是我可不能等你们哦,所以加快进度吧。好了,这节我们就开始学习一个新控件-CCEditBox。一起来学习吧。
CCEditBox看起来和CCTextFieldTTF十分的相似,因为他们两个都是用来输入文字的输入框,但是有相同就有所不同,CCEditBox的功能要比CCTextFieldTTF的功能强大的多,但是带来的是,使用起来也要麻烦一点啦。好了下面我们就开始来攻克它吧。
首先还是一样,新建一个项目,我们命名为Cceditboxdemo吧。
【一】:引用cocos-ext.h
这里因为这些东西都是2.0版本以后的心玩意,所以我们需要引入他们,他们在一个叫cocos-ext.h的文件里定义,我们去引用一下。
我们在ccp文件上输入#include "cocos-ext.h",可是你会发现系统提示,找不到,我们不是已经把cocos2dx的安装目录引入了吗?哈哈,这里是因为这个类库并不是直接在cocos2dx的引入库的,我们要去搬运一下。
先找到扩展类库的位置。例如:C:\cocos2dx\extensions\这时候我们就看到了cocos-ext.h文件了,可是怎么引用他呢?有些教程说的是直接吧下面的一些文件拷贝到项目目录里,然后再添加进项目就可以了,我是你们知道的,我比较懒,这样每次用到都去拷贝肯定不是我的风格,怎么办呢?突然想到一件事,我们一开始的时候不也是遇到要拷贝文件才能调用的情况吗?我们那时候是修改了模板文件解决了,这次行不行的通呢?我们找到那个配置的js C:\cocos2dx\template\msvc\CCAppWiz.win32\Scripts\1033\default.js 打开它,我们可以看到这里都是我们之前修改过的路径,那么我们看看加上我们要的这个外部类路劲能不能引用进去(这里我放在第一位,因为我试了几次放在下面的都没成功,不知道什么原因)。
然后我新建了个项目,直接去搜一下cocos-ext.h。
哈哈,找到了,看来成功了,好了,我们继续。(注:这里我没有使用原来的项目。修改配置文件后我重新建立的项目运行,原有项目因为可能已经创建好了所以引用目录都写进程序了,不会正常引入cocos-ext.h文件)
【二】:CCEditBox
方法:
CCEditBox::create("CCSize对象","CCScale9Sprite对象");
CCScale9Sprite对象,是一种CCSprite对象的变形,它的用法和CCSprite一样,不同点是,CCScale9Sprite对象有个特性就是缩放贴图时可以尽量不失帧。
函数解析:
setText("字符串"); //设置文本
setFontColor(color); //设置文本颜色
setPlaceHolder("文本"); //设置预设文本
getPlaceHolder(对象); //获得预设文本
setMaxLength(对象); //设置最大长度
getMaxLength(对象); //获得最大长度
setInputMode(); //设置键盘模式
setInputFlag(); //设置文本类型
setReturnType(); //设置键盘return类型
1.setInputMode
这里cocos2dx给我们提供了很多键盘的模式,我们来一一了解下。
kEditBoxInputModeAny //文本键盘(含换行)
kEditBoxInputModeEmailAddr //邮件类键盘
kEditBoxInputModeNumeric //数字符号键盘
kEditBoxInputModePhoneNumber //电话号码键盘
kEditBoxInputModeUrl //URL键盘
kEditBoxInputModeDecimal //输入键盘(含小数点)
kEditBoxInputModeSingleLine //文本键盘(不含换行)
2.setInputFlag
这里cocos2dx给我们提供了5种文本类型。
kEditBoxInputFlagPassword //密码形式
kEditBoxInputFlagSensitive //敏感数据输入
kEditBoxInputFlagInitialCapsWord //每个单词首字符大写,并有提示
kEditBoxInputFlagInitialCapsSentence //第一句首字符大写,并有提示
kEditBoxInputFlagInitialCapsAllCharacters //自动大写
3.setReturnType
这里cocos2dx给我们提供了5种键盘返回类型。
kKeyboardReturnTypeDefault //默认类型
kKeyboardReturnTypeDone //Done字样
kKeyboardReturnTypeSend //Send字样
kKeyboardReturnTypeSearch //Search字样
kKeyboardReturnTypeGo //Go字样
【三】:示例
好了,光说不练可不行,我们来试一下做个登录界面吧。
1.和CCtextFieldTTF一样,我们需要一个监控事件来操作。让我们的类继承CCEditBoxDelegate接口。
我们修改Cceditboxdemo.h文件。先要导入cocos-ext.h,然后引用命名空间using namespace cocos2d::extension;
//开始编辑
virtual void editBoxEditingDidBegin(cocos2d::extension::CCEditBox * myeditbox);
//结束编辑
virtual void editBoxEditingDidEnd(cocos2d::extension::CCEditBox * myeditbox);
//编辑框文字改变
virtual void editBoxTextChanged(cocos2d::extension::CCEditBox * myeditbox,const std::string&text);
//触发return后的回调函数
virtual void editBoxReturn(cocos2d::extension::CCEditBox * myeditbox);
2.然后我们去cpp文件修改修改
CCScale9Sprite * scale9one = CCScale9Sprite::create("boxbg.png");
CCEditBox * myeditbox1=CCEditBox::create(CCSizeMake(200,40),scale9one);
myeditbox1->setInputMode(kEditBoxInputModeSingleLine);
myeditbox1->setPosition(ccp(mysize.width/2,mysize.height-100));
this->addChild(myeditbox1);
myeditbox1->setDelegate(this);
CCEditBox * myeditbox2=CCEditBox::create(CCSizeMake(200,40),scale9one);
myeditbox2->setInputMode(kEditBoxInputModeSingleLine);
myeditbox2->setInputFlag(kEditBoxInputFlagPassword);
myeditbox2->setPosition(ccp(mysize.width/2,mysize.height-200));
this->addChild(myeditbox2);
myeditbox2->setDelegate(this);
3.我们运行可是提示我们“error LNK2019: 无法解析的外部符号 "public: static class cocos2d::extension::CCScale9Sprite”fuck,搞笑呢吧。
最后在 eVīLī?ō 的帮助下,解决了这个问题,原来我们没有引入库文件libExtensions.lib。
右键查看项目属性,找到“配置属性”-“连接器”-“输入”在这里我们加上libExtensions.lib这一项。然后保存重新生成。
4.运行会提示错误,因为包含的一些我们没用到,直接忽略最后就可以成功了。
5.如果以后不想手动添加libExtensions.lib的话,还去修改模板文件,在 var strAddDepends = 'libcocos2d.lib opengl32.lib glew32.lib';这里把libExtensions.lib加上即可。
本节DEMO下载
下一篇: 和屌丝一起学cocos2dx-CCControlSwitch
cocos2dx-CCEditBox相关推荐
- cocos2d-x中CCEditbox导出到lua
自从工作后感觉时间较少(每天工作9-22,晚上就不想动了,早上想多睡点),工作中用的是 cocos2d-x.cocos2d-x是一款手机游戏引擎,虽然支持lua,但和love2d相比非纯lua游戏引 ...
- cocos2dX UI控件之CCEditBox
刚刚看了看以前写的博客, 我们已经学了CCLabelTTF, CCLabelBMFont, CCLAbelAtlas, CCSprite, CCMenu这些基础控件了, 基础控件也没有多少了, 我们今 ...
- 【玩转cocos2d-x之三十】点九图和输入框的使用
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/17297721 登录界面一个帐号/密码输入框或者主角命名框是少不了的.这节就来 ...
- Cocos2Dx之处理键盘输入
键盘输入在Cocos2Dx分为两个部分.第一部分是一些功能键的处理:后退键和菜单键.第二部分是处理字符输入.功能键相关的代码位于cocos2dx\keypad_dispatcher.字符输入的代码位于 ...
- Cocos2d-x 九宫格 CCScale9Sprite
文章转载自:http://www.cnblogs.com/sevenyuan/p/3195688.html 在cocos2d-x引擎中,CCScale9Sprite这个文件的位置为: 一.九宫格的实现 ...
- cocos2d-x学习笔记(持续更新)
接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:Particle Designer软件 目前只支持MAC平台 导出 plist文件 地图设计工具:Tile ...
- 转载了别人的cocos2d-x的学习笔记
接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:ParticleDesigner软件目前只支持MAC平台导出plist文件 地图设计工具:Tiles目前有两 ...
- cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)
cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明) 1.问:什么是cocos2d-x? 是一套开放源代码,主要基于c,c++语言,针对windows,linux, ...
- cocos2dx不同版本间的变化
很多cocos2dx学习者学习时所用的cocos2dx版本不尽相同,而网上与版本间变化相关的中文介绍也少,鉴于此,就翻译了官网的各版本新特性介绍(原版详见:http://cocos2d-x.org/d ...
- 可耻的转载了别人的cocos2d-x的学习笔记
原文:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计 ...
最新文章
- 自学python什么时候能够兼职-我,做设计两年,工资4000,兼职1.5w...
- 10大负面测试用例 -转
- 崂山白花蛇草水:旧款变爆款老字号“有预谋”
- 根据工作年限预测工资python代码实现
- u-boot 源码分析讲解
- 2019山科计算机专业分数线,2019山东科技大学研究生分数线汇总(含2016-2019历年复试)...
- 循序渐进db2 第3版_「图书推荐」焊接工程师手册第3版
- 零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果...
- 如何找到python的安装路径_在cmd中查看python的安装路径方法
- 2019计算机科学与技术考研分数线,2019考研中国科学技术大学复试分数线已公布...
- java 包装类型_2.Java基本类型与包装类型
- Android ViewPager 滑动监听事件
- python使用BeautifulSoup的prettify功能来处理HTML文档,之后使用Levenshtein编辑距离计算文档间的相似度
- 【计算机网络】零拷贝之MMAP
- 定理在数学中的简写形式_初中数学常用的定理大全
- 11.7亿、苹果仅20%、1/4的时间看短视频...关于互联网,你必须知道的几个数字......
- arm架构 CF-WU810N网卡驱动安装经验
- javaweb程序开发入门pdf清华,附答案
- 计算机网络被病毒攻击怎么办,电脑被病毒入侵了怎么办
- 论文阅读5 | Recent Advances in Data-Driven Wireless Communication Using Gaussian Processes: A Comprehens