2016-11-27 2 views
0

У меня возникли проблемы с выяснением, какая ошибка, которую я делаю. Я был бы очень рад, если бы вы могли мне помочь. Я хочу, чтобы один переход.to() произошел после другого.Как использовать onComplete в lua, corona SDK

local ball = display.newCircle(160,0,30) 

local function move() 
ball.x = display.contentWidth/2 
ball.y = display.contentWidth-display.contentWidth-ball.contentWidth*2 
transition.to(ball, {x=display.contentWidth/2, y=display.contentHeight*1.3, time=5000, onComplete=move2}) 
end 

local function move2() 
ball.x = display.contentWidth+ball.contentWidth/2 
ball.y = 0-ball.contentWidth/2 
transition.to(ball, {x=0-ball.contentWidth/2, y=display.contentHeight+ball.contentWidth/2, time = 5000}) 
--transition.to(ball,{x=160,y=240}) 
end 

move() 

ответ

0

В чем проблема?

Try (проверено)

local ball = display.newCircle(160,0,30) 

local function move2() 
    ball.x = display.contentWidth + ball.width * 0.5 
    ball.y = -ball.width * 0.5 
    transition.to(ball, {x=-ball.width * 0.5, y=display.contentHeight + ball.width * 0.5, time = 5000}) 
end 

local function move() 
    ball.x = display.contentWidth * 0.5 
    ball.y = -ball.width * 2 
    transition.to(ball, {y=display.contentHeight * 1.3, time=5000, onComplete=move2}) 
end 

move() 

Перед тем, как использовать имя функции необходимо объявить переменную с тем же именем или поместить функцию с частью тела выше места, где вы первый раз использовать его.

Если вы хотите позвонить move функцию снова после того, как transition.to в move2 завершенного просто используйте код ниже

local ball = display.newCircle(160,0,30) 

local move 

local function move2() 
    ball.x = display.contentWidth + ball.width * 0.5 
    ball.y = -ball.width * 0.5 
    transition.to(ball, {x=-ball.width * 0.5, y=display.contentHeight + ball.width * 0.5, time = 5000, onComplete=move}) 
end 

function move() 
    ball.x = display.contentWidth * 0.5 
    ball.y = -ball.width * 2 
    transition.to(ball, {y=display.contentHeight * 1.3, time=5000, onComplete=move2}) 
end 

move() 

Обратите внимание, что вы получаете бесконечность переходов. Подробнее о областях для функций на Corona blog.

+0

@Idurniat Что делать, если я хочу перейти к функции move() после завершения перехода.to в функции move2() (whivh выше функции move()? Надеюсь, что я понятен о моей проблеме. – QuestionEverything

Смежные вопросы