【Cocos2d-x Lua】http工具类封装


实现


该工具类对Cocos2d-x中的HttpClient进行了封装,使可以在Lua中实现http异步请求。


绑定到Lua


工程地址:https://coding.net/u/linchaolong/p/Cocos2d-x_LuaHttpClient/git


该工程使用cocos2d-x-2.2.6和vs2012

把工程放到引擎projects目录下即可


1.把“绑定自定义类到lua”目录下的ext文件夹放到cocos2d-x-2.2.6\scripting\lua目录下

2.其它文件放到cocos2d-x-2.2.6\tools\tolua++目录下,点击build_ext.bat生成绑定文件

3.把LuaExt.h和LuaExt.cpp放到cocos2d-x-2.2.6\scripting\lua\cocos2dx_support下


4.修改CCLuaStack.cpp,在init方法下调用tolua_Ext_open方法注册自定义C++类

#include "LuaExt.h" //包含头文件


    m_state = lua_open();
    luaL_openlibs(m_state);
    tolua_Cocos2d_open(m_state);
    tolua_Ext_open(m_state);  //注册自定义类
    toluafix_open(m_state);


5.在项目中引入文件

【Cocos2d-x Lua】http工具类封装_第1张图片


>>点击查看【绑定C++自定义类到Lua



调用示例


在Lua中调用的示例代码

    -- 在主线程中创建一个CCLayer
    local layer2 = CCLayerColor:create(ccc4(200,0,0,200))
    
    -- 回调函数(参数1:服务返回的数据,参数2:用户数据(CCObject))
    local callback = function(responseData, userdata)
        cclog("lua response data : %s",responseData)
        -- 替换场景
        local scene = CCScene:create()
        scene:addChild(userdata) -- 添加主线程中创建的CCLayer到场景
        CCDirector:sharedDirector():replaceScene(scene)
    end
    
    -- 1.异步http get请求并,传递一个CCObject    
    local params = LuaParams:create("http://www.baidu.com",callback,"",layer2,"CCLayer")
    -- 2.异步http get请求   
--    local params = LuaParams:create()
--    params:setUrl("http://www.baidu.com")
--    params:setFunc(callback)
    LuaHttpClient:getInstance():asynGet(params) --发起请求


你可能感兴趣的:(【Cocos2d-x Lua】http工具类封装)