Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
到()的转换不';t在函数内和运行时工作:Corona/Lua中的addEventListener(“enterFrame”,method)侦听器_Lua_Coronasdk - Fatal编程技术网

到()的转换不';t在函数内和运行时工作:Corona/Lua中的addEventListener(“enterFrame”,method)侦听器

到()的转换不';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

这就是我的问题。我正在使用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, { 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()
中使用该句柄)