• Cocostudio学习笔记(4) LoadingBar+ TextField


    这同时录制两个控件的使用方法:LoadingBar TextField

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

    LoadingBar

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

    今晚就学LoadingBar,翻译成cocos2dx就是progressTimer,翻译成中文就是进度条,翻译成英文就是progressBar,翻译成日语就是“亚美爹”。额。。
    1、先在cocostudio中创建LoadingBar的project
    。最后导入到cocos2dx中的项目资源文件夹下(Resources)。
    2、打开cocos2dxproject,加入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输入框,一个用来输入明文,一个用来输入password。

    怎么设置成password格式大家略微看下就知道怎么回事了。

    最后将project导出到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);//设置文本格式为password格式
    bool isPasswordEnabled();//推断是否为password格式
    void setPasswordStyleText(const char* styleText);//当为password格式时。输入的文本用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

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Delphi程序结构
    SQL存储过程解密 Encrypted object is not transferable, and script can not be generated

    在河南呢
    还在河南,写随笔吧
    HAVING
    mIRC
    关于CAP理论
    开篇
    移动信息系统
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4853449.html
Copyright © 2020-2023  润新知