理论基础
在一些操作中可视化指示进度条。显示给用户一个条表示操作已经完成了多少,继承自 Widget。
代码实践
static LoadingBar * create ()
创建一个空的LoadingBar。
static LoadingBar * create (const std::string &textureName, //LoadingBar背景纹理图片文件。
float percentage=0) //显示的进度百分比。
使用一个纹理和一个进度百分比创建一个LoadingBar。
static LoadingBar * create (const std::string &textureName, //LoadingBar背景纹理图片文件。
TextureResType texType, //LoadingBar背景纹理类型。
float percentage=0) //显示的进度百分比。
使用一个纹理、纹理类型和一个进度百分比创建一个LoadingBar。
void setDirection (Direction direction)
改变进度显示方向。
Direction getDirection () const
获取进度显示方向。
void loadTexture (const std::string &texture, //LoadingBar背景纹理图片文件。
TextureResType texType=TextureResType::LOCAL)
LoadingBar载入背景纹理。
void setPercent (float percent)
改变LoadingBar的当前进度。
float getPercent () const
获取LoadingBar当前的进度。
void setScale9Enabled (bool enabled)
是否开启九宫格渲染。
bool isScale9Enabled () const
请求LoadingBar是否开启了九宫格渲染。
void setCapInsets (const Rect &capInsets)
设置CapInsets。 只有当开启九宫格渲染后才需要设置。
const Rect & getCapInsets () const
请求LoadingBar的capInsets。
实例:
// Create the loading bar
LoadingBar* loadingBar = LoadingBar::create("cocosui/sliderThumb.png");
loadingBar->setTag();
loadingBar->ignoreContentAdaptWithSize(false);
//loadingBar->setScale9Enabled(true);
loadingBar->setCapInsets(Rect(, , , ));
loadingBar->setContentSize(Size(, ));
loadingBar->setDirection(LoadingBar::Direction::LEFT);
loadingBar->setPercent();
loadingBar->setTouchEnabled(true);
loadingBar->addTouchEventListener([=](Ref* sender, Widget::TouchEventType type){
if (type == Widget::TouchEventType::ENDED) {
if (loadingBar->isScale9Enabled())
{
loadingBar->setScale9Enabled(false);
}
else
loadingBar->setScale9Enabled(true);
}
}); loadingBar->setPosition(Vec2(widgetSize.width / 2.0f,
widgetSize.height / 2.0f + loadingBar->getContentSize().height / 4.0f));