该工具类对Cocos2d-x中的HttpClient进行了封装,使可以在Lua中实现http异步请求。
工程地址: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.在项目中引入文件
>>点击查看【绑定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) --发起请求