Corona SDK动画不能与导演类一起工作



嘿,我试图在我的游戏中使用动画,但由于某种原因,我得到错误这是我用于动画的代码

local function animate( event )
    gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);

如果不使用director类,则可以正常工作导演类是从一个场景到另一个场景

我得到的错误信息,当我试图离开类或当我去其他类它会旋转直到我试图离开

错误=尝试对字段'rotation' (nil值)执行算术

请帮忙提前感谢!

试试这个:

gear.rotation = 0
local function animate( event )
    gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);

最有可能的是,当你改变场景时,你的enterFrame仍在运行,但旧场景正在移除你的齿轮对象(但齿轮变量仍然存在)。请确保在更改场景之前删除enterFrame侦听器。

试试这个:

local gear.rotation = 0
local function animate( event )
    gear.rotation = gear.rotation + 10
end
Runtime:addEventListener("enterFrame", animate);

当你离开页面时,呼叫:

Runtime:removeEventListener("enterFrame", animate);
director:changeScene("yourScene")

问题仍然存在,试试下面的代码:

 local bg = display.newRect(0,0,display.contentWidth,display.contentHeight) -- or simply create a background
 -- create gear
 local gear.rotation = 0
local function animate( event )
    gear.rotation = gear.rotation + 10
end
bg:addEventListener("enterFrame", animate);

当你离开页面时,呼叫:

bg:removeEventListener("enterFrame", animate);
director:changeScene("yourScene")

保持编码…:)

我已经找到了解决我的问题的方法,我只是改变了本地函数只要发挥作用就行了。

 function animate( event )
     gate_a.rotation = gate_a.rotation + 2
 end
 Runtime:addEventListener("enterFrame", animate);

当我离开现场

 Runtime:removeEventListener("enterFrame", animate);

最新更新