过渡对象两次? (Corona SDK)

时间:2012-08-22 10:49:00

标签: object sdk transition corona

我有转换问题! 例如: 我有一个对象和一个按钮。当我按下按钮时,我希望此对象淡出,然后当我再次按下按钮时,我希望我的对象淡入。 但我不能淡化我的目标,感觉就像它已经消失了! 对于转换,我使用transition.to,例如:

  

object = transition.to(object,{time = 500,alpha = 0})

但是当我在这个确切的场景中执行另一个功能淡入时,它根本不想工作(按钮按下,但没有任何事情发生,甚至错误)。

请帮帮我!

3 个答案:

答案 0 :(得分:4)

您的代码:

    object = transition.to( object, {time=500, alpha=0})

您正在将转移处理程序保存到对象。试试这个:

    trans = transition.to( object, {time=500, alpha=0})

然后,如果您想取消转换,可以执行此操作

    transition.cancel(trans)

您可以在http://developer.coronalabs.com/node/2407

查看transition.to的使用情况

干杯!

答案 1 :(得分:1)

试试这段代码,我不知道,但它运作良好:

local myRectangle = display.newRect(100, 100, 150, 50)
myRectangle.strokeWidth = 3
myRectangle:setFillColor(140, 140, 140)
myRectangle:setStrokeColor(180, 180, 180)

local button = display.newRect(100, 200, 50, 50)
button.strokeWidth = 3
button:setFillColor(140, 140, 140)
button:setStrokeColor(180, 180, 180)

local buttonfun=function(event)
if event.phase=="ended" then
print("fade")
if myRectangle.alpha ==1.0 then
transition.to( myRectangle, { delay=1, time=1000, alpha=1.0, alpha=0.0} )
myRectangle.alpha=0.0
print("alpha"..myRectangle.alpha)
else
transition.to( myRectangle, { delay=1, time=1000, alpha=0.0, alpha=1.0} )
myRectangle.alpha=1.0
print(myRectangle.alpha)
end
end
return true
end
button:addEventListener("touch", buttonfun)

答案 2 :(得分:0)

在第一次按下按钮后写下这个trans = transition.to( object, {time=500, alpha=0}),所以你必须小鸡制作boolen变量才能使这个动作两次。 第二次再次淡化它你必须alpha=1

例如:

local  trans 
function  Listner  (event)
transition.cancel(trans)
trans = nil 
end

function  onPress(event)
if(flage== true) then 

flage = false  
trans = transition.to( object, {time=500, alpha=0 , onComplete =Listner  })

else
flage = true
trans = transition.to( object, {time=500, alpha=1 , onComplete =Listner  })

end