1

我有这个过渡。我想制作一个位于“desplazar”位置的块中的图像消失,然后将其删除。

transition.to(block[desplazar], {time=14000, alpha=0, onComplete=timer.performWithDelay(12000, borrado(desplazar),1) })

local function borrado(desplazar)
    block[desplazar]:removeSelf()
end    

但我不工作,图像正在消失,我认为图像会在过渡完成后消失,我也延迟了功能,但它不工作。

希望你能帮我

谢谢

我也是这样弄的

transition.to(block[desplazar], {time=14000, alpha=0, onComplete=timer.performWithDelay(12000, intime(),1) })

local function intime()
    print ("intime")
    borrado(desplazar)
end 
4

4 回答 4

3

此代码将起作用

    local function borrado(desplazar)
        block[desplazar]:removeSelf()
    end 


transition.to(block[desplazar], {time=14000, alpha=0, onComplete = timer.performWithDelay(12000, function() borrado(desplazar) end),1})

请记住,在使用转换和计时器时不要只使用参数调用函数,因为您不会像这样达到您希望它触发的时间

 timer.performWithDelay(12000, borrado(desplazar)) 

它只会在没有您分配的时间的情况下触发该功能。希望这可以帮助

于 2013-06-28T22:53:42.580 回答
1

Corona SDK onComplete 参数需要一个函数作为参数,而不是函数调用的结果。您不能直接调用另一个函数,如:

 onComplete = timer.performWithDelay(12000....) 

例子。

最好的方法是创建一个函数来完成你想做的工作:

 local function handleOnComplete(target)
     target:removeSelf()
     target = nil
 end
 transition.to(block[desplazar], {time=14000, alpha=0, onComplete=handleOnComplete } )

handleOnComplete 获取传递给它的参数,该参数是正在转换的对象。我不明白您为什么要在转换完成后再等待 12 秒才能实际删除它。如果这很重要,您可以在 handleOnComplete() 中放置一个计时器以稍微延迟删除。

于 2013-07-01T00:24:44.363 回答
0

这将起作用:

transition.to(block[desplazar], {time=14000, alpha=0, onComplete=function()
    timer.performWithDelay(12000, borrado(desplazar),1)
end })

local function borrado(desplazar)
    block[desplazar]:removeSelf()
end 
于 2013-06-28T22:10:33.797 回答
0

您正在将调用结果传递borrado(desplazar)给 timer.performWithDelay。您需要将一个函数传递给 performWithDelay,该函数将borrado(desplazar)在计时器调用传递的函数时调用。

于 2013-06-28T19:42:32.970 回答