• CoronaSDK著名API精解:timer.performWithDelay


    1 函数介绍

    简单来说就是延迟一段事件后调用某个函数。就仿佛是创建一个定时炸弹,设定爆炸时间,只是到了时间不是爆炸而是执行目标函数。

    这个函数会创建并返回一个timer对象(句柄),用来给其他的timer.xxxx函数使用。例如把这个timer对象(句柄)传递给timer.cancel()函数,用来解除之前指定的目标函数的调用。

    2 语法

    timer.performWithDelay( delay, listener [, iterations] )

    delay:Number类型,延迟的毫秒数,例如:1000=1秒

    listener:Listener类型,延时到期时调用的监听函数。这也可以是一个funtion listener,也可以是一个table listener。如果是table listener,它就必须有一个timer方法,因为timer事件只会发送给这个监听函数。

    iterations:(可选)指定监听函数被调用的次数。默认是1,传入0或-1表示你希望定时器永远运行下去。

    3 举例

    function listener

    local function listener( event )
        print( "listener called" )
    end
    
    timer.performWithDelay( 1000, listener )

    table listener

    local listener = {}
    function listener:timer( event )
        print( "listener called" )
    end
    
    timer.performWithDelay( 1000, listener )

    重复1次:

    -- Lua closure method
    
    local function spawnBall( randomPosition )
        ballPosition = display.newCircle( 100, 100, 20 )
        ballPosition.x = randomPosition
    end
    
    -- Obtain a random number for the spawned object's x position
    local randomPosition = 100 + math.random(200)
    
    -- Wrap "spawnBall" and "randomPosition" inside a closure
    local myClosure = function() return spawnBall( randomPosition ) end
    timer.performWithDelay( 2000, myClosure, 1 )

    为Timer监听器传入额外参数:(这里借助tm实际上在监听函数里可以通过event.source来获得的方式,把外部参数传递给事件监听函数)

    -- Variable handle method
    
    local function onTimer( event )
        -- Access "params" table by pointing to "event.source" (the timer handle)
        local params = event.source.params
        print( params.myParam1 )
        print( params.myParam2 )
    end
    
    -- Assign the timer to a variable "tm"
    local tm = timer.performWithDelay( 1000, onTimer )
    -- Assign a table of parameters to the "tm" handle
    tm.params = { myParam1 = "Parameter1", myParam2 = "Parameter2" }
  • 相关阅读:
    DB2
    Data Queue
    QMQY
    CMD(SA400 Command)
    Software development process
    CSS display样式
    CSS行高line-height解释
    CS和CS3知识点
    HTML图片<img>标签空白解决方法
    CS清除浮动
  • 原文地址:https://www.cnblogs.com/leezj/p/4238059.html
Copyright © 2020-2023  润新知