首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cocos2d-x下载图片

使用cocos2d-x下载图片
EN

Stack Overflow用户
提问于 2014-05-15 08:56:22
回答 1查看 1.6K关注 0票数 0

我无法使用本机cocos2d-x函数下载图片。我正在使用HttpRequest尝试在Android上下载图片。当我使用网址,InputStream和OutputStream在Java下载图片。当我尝试使用本机cocos2d-x函数时,图片是有效的。这幅画会有问题。所讨论的Cocos2d-x版本是最新编写的3.0版。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 08:37:00

在cocos2d-x中,您可以编写以下代码

代码语言:javascript
复制
void HelloWorld::loadImage()
{
    log("onHttpRequestCompleted In the request");
    HttpRequest* request = new (std::nothrow) HttpRequest();
    request->setUrl("https://graph.facebook.com/100000706355105/picture?width=120&height=120");
    request->setRequestType(cocos2d::network::HttpRequest::Type::GET);
    request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onRequestImgCompleted, this));
    request->setTag("Post test2");
    HttpClient::getInstance()->send(request);
    request->release();
}

论RequestCompleted

代码语言:javascript
复制
void HelloWorld::onRequestImgCompleted(HttpClient *sender, HttpResponse *response)
{

    log("In HelloWorld");
    log("AppDelegate::onHttpRequestCompleted - onHttpRequestCompleted BEGIN");
    if (!response)
    {
        log("onHttpRequestCompleted - No Response");
        return;
    }

    log("onHttpRequestCompleted - Response code: %lu", response->getResponseCode());

    if (!response->isSucceed())
    {
        log("onHttpRequestCompleted - Response failed");
        log("onHttpRequestCompleted - Error buffer: %s", response->getErrorBuffer());
        return;
    }
    log("onHttpRequestCompleted - Response code: %s", response->getResponseDataString());

    std::vector<char> *buffer = response->getResponseData();
    const char* file_char = buffer->data();
    log("onHttpRequestCompleted - Response code: %s", file_char);
    Image * image = new  Image ();
    image-> initWithImageData ( reinterpret_cast<const unsigned char*>(&(buffer->front())), buffer->size());
    Texture2D * texture = new  Texture2D ();
    texture-> initWithImage (image);
    Sprite * sprite = Sprite :: createWithTexture (texture);
    sprite->setPosition(Vec2(visibleSize.width/2, visibleSize.height / 2));
    addChild(sprite);

    log("onHttpRequestCompleted height %f", sprite->getContentSize().height);

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23673576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档