2013-05-09 2 views
-1

Привет я пытаюсь использовать анимацию в моей игре, но по какой-то причине я получаю ошибку Вот мой код, который я использовал для анимацииCorona SDK анимация не работает с режиссерским классом?

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

Это работает, если я использовать его без директора класса Класс директор является переход от сцены к сцене

я получаю сообщение об ошибке при попытке покинуть класс, или когда я иду к другому классу его, но вращается, пока я не попытаться оставить класс

ошибки = попытку исполнять ариты метрика на поле «вращение» (значение nil)

Любая помощь пожалуйста Спасибо заранее!

ответ

1

Попробуйте это:

gear.rotation = 0 

local function animate(event) 
    gear.rotation = gear.rotation + 10 
end 

Runtime:addEventListener("enterFrame", animate); 
+0

не работает, но благодаря – Beri

1

Скорее всего, когда вы меняете сцены, ваш enterFrame все еще работает, но старая сцена снимает объект шестеренки (но переменная передачи все еще существует). Обязательно удалите прослушиватель enterFrame перед сменой сцен.

0

Попробуйте это:

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") 

Держите кодирование ..... :)

0

Я нашел решение моей проблемы я просто изменил локальную функцию просто работать, и она работает.

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

и когда я покинуть сцену

Runtime:removeEventListener("enterFrame", animate);