此类的问题解决方法统一:
【在创建 Node节点后 调用父节点 retain() 方法 手动增加引用】
以本次我遇到的问题为例:
报错:invalid 'cobj' in function 'lua_cocos2dx_studio_ActionTimeline_play'
报错的代码:
function A(){
local animPath = "src/animation.lua"
self.loadingAnim = viewCreator.getViewByName(animPath)
self.loadingAnim.root:setPosition(cc.p(width / 2, height / 2))
self.loadingAnim.root:setVisible(false)
self:addChild(self.loadingAnim.root)
}
function B(){
self.loadingAnim.root:setVisible(true)
self.loadingAnim.animation:play("born", true)
}
更改后的代码:
function A(){
local animPath = "src/animation.lua"
self.loadingAnim = viewCreator.getViewByName(animPath)
self.loadingAnim.root:setPosition(cc.p(width / 2, height / 2))
self.loadingAnim.root:setVisible(false)
self:addChild(self.loadingAnim.root)
self.loadingAnim.animation:retain() // 添加的代码
}
function B(){
self.loadingAnim.root:setVisible(true)
self.loadingAnim.animation:play("born", true)
}
网友评论