http://sunnyrx.github.io/2015/12/20/Cocos2dx-3.4-EditBox-Instructions/
本來在cocos2d-x
中調用EditBox
應該是很簡單的事情,因為cocos2d-x
3.0版本後更新頻繁改動,在百度上搜到的教程大多數都跟不上了。 現在我所使用的Cocos2d-x
版本是3.4,不知道更新的版本是否有其它變動。 cocos2d-x 3.4
的EditBox
包含在cocos-ext.h
中,具體點應該是extensions\cocos-ext.h
,大部分關於EditBox
的教程會添加
#include "extensions\cocos-ext.h"
在3.4版本中,項目的include相關目錄早已經添加了extensions文件夾在其中,在Visual Studio
的Project->Properties->Configuration Properties->C/C++->General->Additional Include Directories
中,可以看到有$(EngineRoot)extensions;
在其中。 所以,應用EditBox
相關的頭文件應該是 #include "cocos-ext.h"
接下來,添加 USING_NS_CC_EXT;
然後就可以用EditBox::create()
創建EditBox
,當然完整的創建方法是有參數的。 EditBox
的create
方法有兩個,以下是UIEditBox.h
中關於create
方法的聲明。
/**
* create a edit box with size.
* @return An autorelease pointer of EditBox, you don't need to release it only if you retain it again.
*/
static EditBox* create(const Size& size,
Scale9Sprite* normalSprite,
Scale9Sprite* pressedSprite = nullptr,
Scale9Sprite* disabledSprite = nullptr);
/**
* create a edit box with size.
* @return An autorelease pointer of EditBox, you don't need to release it only if you retain it again.
*/
static EditBox* create(const Size& size,
const std::string& pNormal9SpriteBg,
TextureResType texType = TextureResType::LOCAL);
在使用Scale9Sprite
上遇到了困難,好在發現有第二個create
方法。
在編譯的時候,遇到了fatal error C1083: Cannot open include file: 'extensions/......
錯誤,問題在項目的include
相關目錄早已經添加了extensions
,所以有其它頭文件有#include "extensions/..."
的話一律會出現error C1083
。根據cocos論壇中一個相關的討論,只要在property->configure property->C/C++->general->additional include directory
中添加$(EngineRoot);
就可以解決問題了。
cocos2d-x
中調用EditBox
應該是很簡單的事情,因為cocos2d-x
3.0版本後更新頻繁改動,在百度上搜到的教程大多數都跟不上了。 現在我所使用的Cocos2d-x
版本是3.4,不知道更新的版本是否有其它變動。 cocos2d-x 3.4
的EditBox
包含在cocos-ext.h
中,具體點應該是extensions\cocos-ext.h
,大部分關於EditBox
的教程會添加#include "extensions\cocos-ext.h"
Visual Studio
的Project->Properties->Configuration Properties->C/C++->General->Additional Include Directories
中,可以看到有$(EngineRoot)extensions;
在其中。 所以,應用EditBox
相關的頭文件應該是 #include "cocos-ext.h"
接下來,添加 USING_NS_CC_EXT;
然後就可以用EditBox::create()
創建EditBox
,當然完整的創建方法是有參數的。 EditBox
的create
方法有兩個,以下是UIEditBox.h
中關於create
方法的聲明。/**
* create a edit box with size.
* @return An autorelease pointer of EditBox, you don't need to release it only if you retain it again.
*/
static EditBox* create(const Size& size,
Scale9Sprite* normalSprite,
Scale9Sprite* pressedSprite = nullptr,
Scale9Sprite* disabledSprite = nullptr);
/**
* create a edit box with size.
* @return An autorelease pointer of EditBox, you don't need to release it only if you retain it again.
*/
static EditBox* create(const Size& size,
const std::string& pNormal9SpriteBg,
TextureResType texType = TextureResType::LOCAL);
Scale9Sprite
上遇到了困難,好在發現有第二個create
方法。fatal error C1083: Cannot open include file: 'extensions/......
錯誤,問題在項目的include
相關目錄早已經添加了extensions
,所以有其它頭文件有#include "extensions/..."
的話一律會出現error C1083
。根據cocos論壇中一個相關的討論,只要在property->configure property->C/C++->general->additional include directory
中添加$(EngineRoot);
就可以解決問題了。
沒有留言:
張貼留言