声  明


本教程仅用于初学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-CCMenu菜单
下一篇: 和屌丝一起学cocos2dx-CCControlSwitch

cocos2dx-CCEditBox相关推荐

  1. cocos2d-x中CCEditbox导出到lua

    自从工作后感觉时间较少(每天工作9-22,晚上就不想动了,早上想多睡点),工作中用的是 cocos2d-x.cocos2d-x是一款手机游戏引擎,虽然支持lua,但和love2d相比非纯lua游戏引 ...

  2. cocos2dX UI控件之CCEditBox

    刚刚看了看以前写的博客, 我们已经学了CCLabelTTF, CCLabelBMFont, CCLAbelAtlas, CCSprite, CCMenu这些基础控件了, 基础控件也没有多少了, 我们今 ...

  3. 【玩转cocos2d-x之三十】点九图和输入框的使用

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/17297721 登录界面一个帐号/密码输入框或者主角命名框是少不了的.这节就来 ...

  4. Cocos2Dx之处理键盘输入

    键盘输入在Cocos2Dx分为两个部分.第一部分是一些功能键的处理:后退键和菜单键.第二部分是处理字符输入.功能键相关的代码位于cocos2dx\keypad_dispatcher.字符输入的代码位于 ...

  5. Cocos2d-x 九宫格 CCScale9Sprite

    文章转载自:http://www.cnblogs.com/sevenyuan/p/3195688.html 在cocos2d-x引擎中,CCScale9Sprite这个文件的位置为: 一.九宫格的实现 ...

  6. cocos2d-x学习笔记(持续更新)

    接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:Particle Designer软件  目前只支持MAC平台 导出 plist文件 地图设计工具:Tile ...

  7. 转载了别人的cocos2d-x的学习笔记

    接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计工具:ParticleDesigner软件目前只支持MAC平台导出plist文件 地图设计工具:Tiles目前有两 ...

  8. cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)

    cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明) 1.问:什么是cocos2d-x? 是一套开放源代码,主要基于c,c++语言,针对windows,linux, ...

  9. cocos2dx不同版本间的变化

    很多cocos2dx学习者学习时所用的cocos2dx版本不尽相同,而网上与版本间变化相关的中文介绍也少,鉴于此,就翻译了官网的各版本新特性介绍(原版详见:http://cocos2d-x.org/d ...

  10. 可耻的转载了别人的cocos2d-x的学习笔记

    原文:http://blog.csdn.net/we000636/article/details/8263503 接受触屏事件的优先级是值越小,响应触屏事件的优先级越高 Z值越大,越外面 粒子系统设计 ...

最新文章

  1. 自学python什么时候能够兼职-我,做设计两年,工资4000,兼职1.5w...
  2. 10大负面测试用例 -转
  3. 崂山白花蛇草水:旧款变爆款老字号“有预谋”
  4. 根据工作年限预测工资python代码实现
  5. u-boot 源码分析讲解
  6. 2019山科计算机专业分数线,2019山东科技大学研究生分数线汇总(含2016-2019历年复试)...
  7. 循序渐进db2 第3版_「图书推荐」焊接工程师手册第3版
  8. 零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果...
  9. 如何找到python的安装路径_在cmd中查看python的安装路径方法
  10. 2019计算机科学与技术考研分数线,2019考研中国科学技术大学复试分数线已公布...
  11. java 包装类型_2.Java基本类型与包装类型
  12. Android ViewPager 滑动监听事件
  13. python使用BeautifulSoup的prettify功能来处理HTML文档,之后使用Levenshtein编辑距离计算文档间的相似度
  14. 【计算机网络】零拷贝之MMAP
  15. 定理在数学中的简写形式_初中数学常用的定理大全
  16. 11.7亿、苹果仅20%、1/4的时间看短视频...关于互联网,你必须知道的几个数字......
  17. arm架构 CF-WU810N网卡驱动安装经验
  18. javaweb程序开发入门pdf清华,附答案
  19. 计算机网络被病毒攻击怎么办,电脑被病毒入侵了怎么办
  20. 论文阅读5 | Recent Advances in Data-Driven Wireless Communication Using Gaussian Processes: A Comprehens

热门文章

  1. 多层PCB HDI堆栈
  2. 开一家“蜜雪冰城”店,38万够吗?
  3. 小图片放大后怎么能够清晰,不失真
  4. ipad和iphone适配_如何将应用程序和游戏还原到iPhone或iPad
  5. vue 试卷控件 界面模式
  6. QLabel属性 文字右对齐
  7. 【思维导图】Java基础笔记整理
  8. 高压BMS的群控能源解读、操作与规模应用
  9. Python爬虫自学与实战4:异常处理
  10. CarSim仿真快速入门(二十六)-Euro NCAP VRU AEB 测试