所以这是我的问题。我正在使用Corona SDK处理一些Lua代码,用于iPhone应用程序。我已经将问题缩小到几行代码,如果能够工作,可以指出我在实际代码的正确方向。 (另外,发布原始代码只会使这篇文章更长:P)。所以这里:
local square = display.newRect( 0, 0, 100, 100 )
square:setFillColor( 255,255,255 )
local function move(event)
transition.to( self, { time=1500, alpha=0, x=100, y=100 } )
end
Runtime:addEventListener("enterFrame", move)
基本上,问题是transition.to()方法在具有“enterFrame”侦听器的函数中不起作用。如果我将最后一行的监听器更改为
timer.performWithDelay( )
甚至
Runtime:addEventListener( "touch", method)
它突然起作用了。
我不知道我错过了什么。有人可以帮忙吗?
答案 0 :(得分:2)
每次刷新屏幕时,Corona运行时都会调用enterFrame
侦听器 - 大概每秒30帧。所以每33毫秒,你在广场上开始动画,完成需要1500毫秒。就像它开始一样,你添加另一个动画。等等。您应该使用此事件来处理您必须直接管理的动画,因为移动或更改超出了转换功能的功能。使用转换函数的重点是避免对大多数动画进行这种直接控制。
仅当用户触摸屏幕时才会调用touch
侦听器,因此您不会重复调用move
事件。 performWithDelay
方法也只调用一次move
事件。您可能想要使用其中一种方法。