在线更新后使用package.loaded = nil,重新加载模块,然后出现一个无限循环的bug:
NodeEx.lua中
Node.scheduleUpdate_ = Node.scheduleUpdate
function Node:scheduleUpdate(handler)
if handler then
PRINT_DEPRECATED(“Node.scheduleUpdate(handler) is deprecated, please use Node.addNodeEventListener()”)
self:addNodeEventListener(c.NODE_ENTER_FRAME_EVENT, handler)
self:scheduleUpdate_()
else
self:scheduleUpdate_()
end
end
第一次加载的时候Node.scheduleUpdate_赋值为 C++的CCNode::scheduleUpdate.
重新加载以后Node.scheduleUpdate_赋值则为lua的Node:scheduleUpdate。
在Node:scheduleUpdate里面又调用Node.scheduleUpdate_导致无限回路了。。
目前想到的办法是判断Node.scheduleUpdate_为nil再赋值。。
不懂大家有没有更好的解决办法。