如何在 Corona 中等待

如何在执行任务后等待呢?

timer.performWithDelay()

这个函数可以在执行任务前等待一段时间,但是我想在执行任务后等待。有没有办法做到呢?实际上,我想显示一张图片 5 秒钟。

点赞
用户2858170
用户2858170
function afterTimer()
    print("定时器完成!")
    print("现在做其他事情")
end

timer.performWithDelay(3000, afterTimer, 1)

以上代码用于创建一个在3秒后完成的定时器,完成后将执行 afterTimer 函数。在此函数内,将输出两个字符串:"定时器完成!""现在做其他事情"

2017-01-25 17:55:07
用户7026995
用户7026995

尝试

local image

function afterTimer()
    -- 隐藏图片
    image.alpha = 0
    -- 或者使用
    -- image.isVisible = false
    -- 或者移除
    -- display.remove(image); image = nil
end

image = display.newImage("nameOfImage.png")

timer.performWithDelay(5000, afterTimer, 1)
2017-01-27 17:59:09
用户3455883
用户3455883

如果您想在实例化对象后对 DisplayObject 进行转换(例如淡出),请记住 Corona 的 transition 库中所有函数都可用的 delay 参数。

例如,要在创建图像后的 5 秒内隐藏它:

local image = display.newImage(...
transition.fadeOut( image, { delay = 5000, time = 250 }

如果您想在它淡出后从场景中删除 image DisplayObject,可以添加一个完成处理程序:

local image = display.newImage(...

local function onFadeOutComplete( obj )
    obj:removeSelf()
    obj = nil
end

transition.fadeOut( image, {delay = 5000, time = 250, onComplete = onFadeOutComplete } )
2017-03-21 09:20:35