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

        

    }

  • 相关阅读:
    如何解决WEB应用中文乱码问题
    js获取指定格式的时间字符串
    js 实现 Base64 编码的相互转换
    Sql Server 与 MySql 在使用 update inner join 时的区别
    VMware12创建新的虚拟机及设置硬件环境
    Sql Server 中使用日期遍历
    Linux 添加定时任务,crontab -e 命令与直接编辑 /etc/crontab 文件
    mysql 中 max_allowed_packet 查询和修改
    eclipse编译项目:Java @Override 注解报错的解决方法
    eclipse启动项目报错:java.lang.ClassNotFoundException: ContextLoaderListener
  • 原文地址:https://www.cnblogs.com/luorende/p/6255622.html
Copyright © 2011-2022 走看看