
大坑,大坑
需要手动修改源码
目录:cocos\scripting\lua-bindings\manual\ui
文件:lua_cocos2dx_ui_manual.cpp
添加:
#include "cocostudio/ActionTimeline/csloader.h"
#include "cocostudio/ActionTimeline/CCActionTimeline.h"
static int lua_cocos2dx_ActionTimeline_setLastFrameCallFunc(lua_State* L){ if (nullptr == L) return 0; int argc = 0; cocostudio::timeline::ActionTimeline* self = nullptr;#if COCOS2D_DEBUG >= 1 tolua_Error tolua_err; if (!tolua_isusertype(L,1,"ccs.ActionTimeline",&tolua_err)) goto tolua_lerror;#endif self = static_cast<cocostudio::timeline::ActionTimeline*>(tolua_tousertype(L,0));#if COCOS2D_DEBUG >= 1 if (nullptr == self) { tolua_error(L,"invalID 'self' in function 'lua_cocos2dx_ActionTimeline_setLastFrameCallFunc'\n",NulL); return 0; }#endif argc = lua_gettop(L) - 1; if (1 == argc) {#if COCOS2D_DEBUG >= 1 if (!toluafix_isfunction(L,2,"LUA_FUNCTION",&tolua_err)) { goto tolua_lerror; }#endif LUA_FUNCTION handler = (toluafix_ref_function(L,0)); self->setLastFrameCallFunc([=](){ LuaEngine::getInstance()->getLuaStack()->executeFunctionByHandler(handler,0); }); return 0; } luaL_error(L,"'setLastFrameCallFunc' function of ActionTimeline has wrong number of arguments: %d,was expecting %d\n",argc,1);#if COCOS2D_DEBUG >= 1 tolua_lerror: tolua_error(L,"#ferror in function 'setLastFrameCallFunc'.",&tolua_err);#endif return 0;}static voID extendActionTimeline(lua_State* L){ lua_pushstring(L,"ccs.ActionTimeline"); lua_rawget(L,LUA_REGISTRYINDEX); if (lua_istable(L,-1)) { //tolua_function(L,"setFrameEventCallFunc",lua_cocos2dx_ActionTimeline_setFrameEventCallFunc); tolua_function(L,"setLastFrameCallFunc",lua_cocos2dx_ActionTimeline_setLastFrameCallFunc); } lua_pop(L,1);} 然后在:register_all_cocos2dx_ui_manual 函数中添加:
extendActionTimeline(L);
最后启动模拟器:即可调用到setLastFrameCallFunc
不要谢我, 我叫雷锋!!
总结以上是内存溢出为你收集整理的cocos2dx Lua 版本中无法调用setLastFrameCallFunc全部内容,希望文章能够帮你解决cocos2dx Lua 版本中无法调用setLastFrameCallFunc所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)