Cocostudio学习笔记(4) LoadingBar+ TextField

这篇记录了两个控件的使用流程:LoadingBar TextField

----------------------------------------------------------------------------------------------------------------------------

LoadingBar

---------------------------------------------------------------------------------------------------------------------------

今晚就学LoadingBar,翻译成cocos2dx就是progressTimer,翻译成中文就是进度条,翻译成英文就是progressBar,翻译成日语就是“亚美爹”,额。。
1、先在cocostudio中创建LoadingBar的工程
,最后导入到cocos2dx中的项目资源目录下(Resources)。
2、打开cocos2dx工程,添加cocostudio的widget到场景中

cocos2d::ui::Widget* progress = GUIReader::getInstance()->widgetFromJsonFile("ProgressBarUi/ProgressBarUi_1.json");
this->addChild(progress,2);
3、从widget提取LoadingBar,然后对它单独做一些操作,如弯下腰,翘屁股什么的。
LoadingBar* loading = static_cast<LoadingBar*>(Helper::seekWidgetByName(progress,"progressBar"));
loading->setPosition(Point(300,300));
恩,类名就是 LoadingBar啦。

4、到LoadingBar的源码里看看它都有啥东东
static LoadingBar* create();
//textureName是进度条的纹理图片,percentage是进度条初始进度,默认为0
static LoadingBar* create(const std::string& textureName, int percentage = 0);

//先看下进度条都有哪些类型,如下枚举:
typedef enum
{
    LoadingBarTypeLeft,//表示进度条是从左向右递增
    LoadingBarTypeRight//表示进度条从又向左递增
}LoadingBarType;

//设置进度条的方向,
void setDirection(LoadingBarType dir);
//获得进度条的方向,返回值为整型
int getDirection();

//设置进度和返回当前进度
void setPercent(int percent);
int getPercent();
//其他关于九宫格的我就没去看啦
5、其实cocostudio的LoadingBar比cocos2dx的progressTimer更好用,感觉progressTimer的一些初始化设置比较麻烦,对于新手来说较难理解(额,其实我因为我当初刚接触progressTimer被setMidPoine这个API搞得有点晕...)。
对于设置loadingBar的方向,其实在cocostudio的GUI界面的属性面板就可以设置啦。不过我发现不论是在cocos2dx中或者是在cocostudio中,LoadingBar在设置方向上都没有一个从上到下或者从下到上的,后来想想,只要将loadingBar旋转个方向不就可以了嘛,呼呼。

恩,雨还在下,但我要去睡觉咯。

----------------------------------------------------------------------------------------------------------------------------

TextField

---------------------------------------------------------------------------------------------------------------------------

好吧,下面我简单的说几句话:
1、我在cocostudio的场景中添加两个TextField输入框,一个用来输入明文,一个用来输入密码。怎么设置成密码格式大家稍微看下就知道怎么回事了。最后将工程导出到cocos2dx的资源目录下。

2、在cocos2dx添加上面的两个TextField控件,怎么添加呢?肯定是要先加载Widget

Widget* TextFieldUI = GUIReader::getInstance()->widgetFromJsonFile("TextField/PTextFieldUi_1.json");
this->addChild(pageViewUI,2);
3、单独取出TextField。
TextField* m_input = static_cast<TextField*>(Helper::seekWidgetByName(TextFieldUI,"editBox"));
m_input->setPosition(Point(300,300));
4、看下TextField的常用API:
//创建TextField
static TextField* create();
static TextField* create(const std::string& placeholder,//设置在未输入任何文字前显示的内容
						 const std::string& fontName,//设置字体格式
						 int fontSize);//设置字体大小
						 
//设置TextField的触摸范围,当手指触摸坐标在这个触摸范围,那么即可输入文字						 
void setTouchSize(const Size &size);
Size getTouchSize();

void setTouchAreaEnabled(bool enable);//设置是否打开触摸
virtual bool hitTest(const Point &pt);//what is this?
void setText(const std::string& text);//设置输入框文本
void setPlaceHolder(const std::string& value);//设置默认显示文本
const std::string& getPlaceHolder();//获得默认显示文本
void setFontSize(int size);//设置字体大小
int getFontSize();//获得字体大小
void setFontName(const std::string& name);//设置字体格式
const std::string& getFontName();//获得字体格式

const std::string& getStringValue();//获得输入框中的文本

void setMaxLengthEnabled(bool enable);//设置是否限制输入字数
bool isMaxLengthEnabled();//判断是否限制输入字数
void setMaxLength(int length);//设置最大输入字数
int getMaxLength();//获得最大输入字数
void setPasswordEnabled(bool enable);//设置文本格式为密码格式
bool isPasswordEnabled();//判断是否为密码格式
void setPasswordStyleText(const char* styleText);//当为密码格式时,输入的文本用styleText 来替代显示
const char* getPasswordStyleText();//获得上面的styleText

bool getAttachWithIME();
void setAttachWithIME(bool attach);
bool getDetachWithIME();
void setDetachWithIME(bool detach);
bool getInsertText();
void setInsertText(bool insertText);
bool getDeleteBackward();
void setDeleteBackward(bool deleteBackward);
void addEventListenerTextField(Ref* target, SEL_TextFieldEvent selecor);//添加回调函数


5、不写了。

尊重原创,转载请注明来源:http://blog.csdn.net/star530/article/details/37368861

你可能感兴趣的:(Cocostudio学习笔记(4) LoadingBar+ TextField)