实现代码如下:
/*添加Loading动画*/ auto sp1 = Sprite::create(LOADING_PROGRESS); ProgressTimer*pt = ProgressTimer::create(sp1); //01 pt->setType(ProgressTimer::Type::BAR); //02 pt->setBarChangeRate(Vec2(1,0)); //03 pt->setMidpoint(Vec2(0,0)); //04 pt->runAction(ProgressFromTo::create(5,100)); //05 pt->setPosition(Vec2(visibleSize.width / 2 + origin.x,visibleSize.height / 2 + origin.y)); this->addChild(pt);
01.ProgressTimer是Node的子类。该类根据百分比来渲染显示内部的Sprite对象。变化方向包括径向(Radial),水平(Horizontal)或者垂直方向(vertical)。
02.进度条类型:RADIAL(逆时针径向)、BAR(条形,一般是条形)。
03.setBarChangeRate 允许BAR类型进度条按照特定速率移动:是定义方向:Vec2(0,1)是自下而上、Vec2(1,0)是自左向右。(API没怎么看明白,,好像和实际情况不太一样。。。存疑)
04.setMidpoint 是定义进度条开始位置:如果进度条类型是RADIAL,则setMidpoint更改中心点;如果进度条类型是BAR,则setMidpoint更改条形的成长;
从左到右Vec2(0,y);从右到左Vec2(1,y);从下到上Vec2(x,0);从上到下效果貌似没什么影响)
05.根据持续时间、起始百分数、终止百分数,播放进度条。