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();

        

    }

  • 相关阅读:
    前端打包利器:webpack工具
    asp.net 通过ajax方式调用webmethod方法使用自定义类传参及获取返回参数
    C#报错:创建调试信息文件 ……objDebugmodel.pdb: 拒绝访问
    ts 使用Visual Studio2012和TFS网站管理源代码
    Win7(包括32和64位)使用GitHub
    C#程序开发中经常遇到的10条实用的代码
    简单优化实现大数据量的重复判断和导入
    Asp.Net修改上传文件大小限制(修改web.config)
    XlFileFormat
    Excel 2007中的新文件格式
  • 原文地址:https://www.cnblogs.com/luorende/p/6255622.html
Copyright © 2011-2022 走看看