zoukankan      html  css  js  c++  java
  • Cocos2dx网络读取图片

    //
    //  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();
        
    }
  • 相关阅读:
    vscode debugger 调试服务
    巴克斯诺尔范式 && 乔姆斯基谱系,词法 && 语法
    推荐好用的建站系统以及各网站系统优缺点介绍
    解决emlog默认导航不能修改的问题以及修改后台登录地址的方法
    易企CMS主要模板文件介绍
    易企CMS模板调用标签列表
    易企CMS仿站标签说明
    使用Custom scrollbar(彩色滚动条)插件实现WordPress滚动条变色的方法
    2018给网页滚动条变色的新方法
    javascript实现双击网页自动滚动,单击滚动停止
  • 原文地址:https://www.cnblogs.com/leehongee/p/4038311.html
Copyright © 2011-2022 走看看