zoukankan      html  css  js  c++  java
  • cocos2dx 3.x(加载网络自定义头像)

    //

    //  Connection.h

    //  XXDemo

    //

    //  Created by LeeHonGee on 14-9-4.

    //

    //

    #ifndef __XXDemo__Connection__

    #define __XXDemo__Connection__

    #include <iostream>

    #include "cocos2d.h"

    #include "network/HttpClient.h"

    USING_NS_CC;

    using namespace std;

    using namespace cocos2d::network;

    class Connection{

        

    public:

        

        void doHttpRequest(const char* url,const char* requestData,const char* tag,const ccHttpRequestCallback& callback);

        

       void onHttpRequestImageCompleted(HttpClient *sender, HttpResponse *response);

        

    private:

        

        //获取请求网络图片资源

        Texture2D* texture;

    };

    #endif /* defined(__XXDemo__Connection__) */

    //

    //  Connection.cpp

    //  XXXDemo

    //

    //  Created by LeeHonGee on 14-9-4.

    //

    //

    #include "Connection.h"

    /**

     编译到Android平台之后注意添加联网权限

     **/

    void Connection::doHttpRequest(const char* url,const char* requestData,const char* tag,const ccHttpRequestCallback& callback){

      

        HttpRequest* request = new HttpRequest();

        request->setUrl(url);

        request->setRequestType(HttpRequest::Type::POST);

        

        //这是回调对象和回调函数

        request->setResponseCallback(callback);

        request->setTag(tag);

        

        //请求的数据

        if(strlen(requestData)!=0){

            request->setRequestData(requestData,strlen(requestData));

        }

        HttpClient::getInstance()->send(request);

        

        //释放内存

        request->release();

       }

    void Connection::onHttpRequestImageCompleted(HttpClient *sender, HttpResponse *response){

       

        if (!response)

        {

            return;

        }

        

        // You can get original request type from: response->request->reqType

        const char* tag  =  response->getHttpRequest()->getTag();

        

        if (0 != strlen(tag))

        {

            log("%s completed", response->getHttpRequest()->getTag());

        }

        

        if (!response->isSucceed())

        {

            log("error buffer: %s", response->getErrorBuffer());

            return;

        }

        

        

        std::vector<char> *buffer = response->getResponseData();

        

        //create image

        Image* image = new Image;

        image->initWithImageData((unsigned char*)buffer->data(),buffer->size());

        

        //create texture

        texture = new Texture2D();

        bool isImage = texture->initWithImage(image);

        

        if(isImage){

            log("Texture2D 初始化!");

        }

        image->release();

        

    }

  • 相关阅读:
    Tensorflow 2.0 学习资源
    SpagoBI 教程 Lesson 5: Creating a dashboard with BIRT and SpagoBI
    SpagoBI 教程 Lesson 4: BIRT Reports
    SpagoBI 教程 Lesson 3: Highchart Dashboards
    SpagoBI 教程 Lesson 2: OLAP with JPIVOT
    SpagoBI 教程 Lesson 1:Introduction and Installation
    Oracle system表空间满的暂定解决方法
    运算符重载_继承_多态_模版
    成员函数返回的是对象和引用的区别(转)
    String类型_static成员_动态内存分配_拷贝构造函数_const关键字_友元函数与友元类
  • 原文地址:https://www.cnblogs.com/luorende/p/6255622.html
Copyright © 2011-2022 走看看