到()的转换不';t在函数内和运行时工作:Corona/Lua中的addEventListener(“enterFrame”,method)侦听器
这就是我的问题。我正在使用Corona SDK为iPhone应用程序编写一些Lua代码。我已经将问题缩小到了几行代码,如果让它工作,它可以为我指出实际代码的正确方向。(另外,发布原始代码只会使此帖子变长:P)。下面是:到()的转换不';t在函数内和运行时工作:Corona/Lua中的addEventListener(“enterFrame”,method)侦听器,lua,coronasdk,Lua,Coronasdk,这就是我的问题。我正在使用Corona SDK为iPhone应用程序编写一些Lua代码。我已经将问题缩小到了几行代码,如果让它工作,它可以为我指出实际代码的正确方向。(另外,发布原始代码只会使此帖子变长:P)。下面是: local square = display.newRect( 0, 0, 100, 100 ) square:setFillColor( 255,255,255 ) local function move(event) transition.to( self, { t
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)
它突然起作用了
我不知道我错过了什么。有人能帮忙吗?每次刷新屏幕时,Corona运行时都会调用
enterFrame
侦听器,可能每秒30帧。因此,每33毫秒,你在广场上开始一个动画,需要1500毫秒才能完成。刚开始,您就添加了另一个动画。等等您应该使用此事件来处理必须直接管理的动画,因为移动或更改超出了过渡功能的能力。使用过渡函数的全部目的是避免对大多数动画进行这种直接控制
只有当用户触摸屏幕时才会调用
touch
侦听器,因此不会重复调用move
事件。performWithDelay
方法也只调用一次move
事件。您可能想使用这些方法之一。基本上,我需要一个图像在循环路径中移动(比如0,0,0,1,1,1,0),直到我点击它,在这种情况下调用另一个函数。你认为我可以用onComplete参数,以及路径中四个点的不同函数来实现吗?是的,这就是我的方法。在局部变量中跟踪当前转换,以便可以在触摸事件处理程序中终止它。(transition.to()
返回一个句柄,稍后在transaction.cancel()
中使用该句柄)