128 SpriteFrameCache::getInstance()->addSpriteFramesWithFile(
s_s9s_ui_plist);
133 auto view = this->getChildByName(
sNameList[0]);
134 auto sprite = view->getChildByTag(
TAG_SPRITE);
137 sprite->removeFromParentAndCleanup(
true);
139 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
140 btn->setEnabled(
false);
141 btn->setVisible(
false);
144 bar->setVisible(
true);
148 topRightView->setAnchorPoint(Vec2(0, 0));
150 this->addChild(topRightView);
154 auto view = this->getChildByName(
sNameList[1]);
155 auto sprite = view->getChildByTag(
TAG_SPRITE);
158 sprite->removeFromParentAndCleanup(
true);
160 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
161 btn->setEnabled(
false);
162 btn->setVisible(
false);
165 bar->setVisible(
true);
166 bar->setEnabled(
true);
170 topLeftView->setAnchorPoint(Vec2(1.0f, 0.0f));
172 this->addChild(topLeftView);
176 auto view = this->getChildByName(
sNameList[2]);
177 auto sprite = view->getChildByTag(
TAG_SPRITE);
180 sprite->removeFromParentAndCleanup(
true);
182 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
183 btn->setEnabled(
false);
184 btn->setVisible(
false);
187 bar->setVisible(
true);
188 bar->setEnabled(
true);
189 auto path = FileUtils::getInstance()->getWritablePath() +
"CppTests/DownloaderTest/" +
sNameList[2];
193 bottomLeftView->setAnchorPoint(Vec2(1, 1));
195 this->addChild(bottomLeftView);
199 auto view = this->getChildByName(
sNameList[3]);
200 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
201 btn->setEnabled(
false);
202 btn->setVisible(
false);
205 bar->setVisible(
true);
206 bar->setEnabled(
true);
207 auto path = FileUtils::getInstance()->getWritablePath() +
"CppTests/DownloaderTest/" +
sNameList[3];
211 bottomRightView->setAnchorPoint(Vec2(0, 1));
213 this->addChild(bottomRightView);
216 downloader->onTaskProgress = [
this](
const network::DownloadTask& task,
217 int64_t bytesReceived,
218 int64_t totalBytesReceived,
219 int64_t totalBytesExpected)
221 Node* view = this->getChildByName(task.identifier);
223 float percent = float(totalBytesReceived * 100) / totalBytesExpected;
224 bar->setPercent(percent);
226 sprintf(buf,
"%.1f%%[total %d KB]", percent,
int(totalBytesExpected/1024));
227 auto status = (Label*)view->getChildByTag(
TAG_STATUS);
228 status->setString(buf);
232 downloader->onDataTaskSuccess = [
this](
const cocos2d::network::DownloadTask& task,
233 std::vector<unsigned char>& data)
236 Texture2D* texture =
nullptr;
240 if (
false == img.initWithImageData(data.data(), data.size()))
245 texture =
new Texture2D();
246 if (
false == texture->initWithImage(&img))
250 auto sprite = Sprite::createWithTexture(texture);
251 auto view = this->getChildByName(task.identifier);
252 auto viewSize = view->getContentSize();
253 sprite->setPosition(viewSize.width / 2, viewSize.height / 2);
254 auto spriteSize = sprite->getContentSize();
255 float scale = MIN((viewSize.height - 20) / spriteSize.height, (viewSize.width - 20) / spriteSize.width);
256 sprite->setScale(scale);
259 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
260 btn->setEnabled(
true);
261 btn->setVisible(
true);
263 bar->setVisible(
false);
265 CC_SAFE_RELEASE(texture);
268 downloader->onFileTaskSuccess = [
this](
const cocos2d::network::DownloadTask& task)
270 Texture2D* texture =
nullptr;
273 auto view = this->getChildByName(task.identifier);
274 if (std::string::npos == task.storagePath.find(
".png"))
278 sprintf(buf,
"Download [%s] success.", task.identifier.c_str());
279 auto status = (Label*)view->getChildByTag(
TAG_STATUS);
280 status->setString(buf);
284 auto sprite = Sprite::create(task.storagePath);
285 auto viewSize = view->getContentSize();
286 sprite->setPosition(viewSize.width / 2, viewSize.height / 2);
287 auto spriteSize = sprite->getContentSize();
288 float scale = MIN((viewSize.height - 20) / spriteSize.height, (viewSize.width - 20) / spriteSize.width);
289 sprite->setScale(scale);
292 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
293 btn->setEnabled(
true);
294 btn->setVisible(
true);
296 bar->setVisible(
false);
298 CC_SAFE_RELEASE(texture);
302 downloader->onTaskError = [
this](
const cocos2d::network::DownloadTask& task,
304 int errorCodeInternal,
305 const std::string& errorStr)
307 log(
"Failed to download : %s, identifier(%s) error code(%d), internal error code(%d) desc(%s)"
308 , task.requestURL.c_str()
309 , task.identifier.c_str()
313 auto view = this->getChildByName(task.identifier);
314 auto status = (Label*)view->getChildByTag(
TAG_STATUS);
315 status->setString(errorStr.length() ? errorStr :
"Download failed.");
317 auto btn = (ui::Button*)view->getChildByTag(
TAG_BUTTON);
318 btn->setEnabled(
true);
319 btn->setVisible(
true);
static const char * sNameList[sListSize]
static const char * sURLList[]
cocos2d::MenuItemImage * _restartTestItem
virtual void onEnter() override
static cocos2d::Vec2 center()
Node * createDownloadView(const char *name, const cocos2d::ui::Button::ccWidgetClickCallback &callback)
static const char s_s9s_ui_plist[]