Difference between revisions of "Timer"

From GiderosMobile
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''Supported platforms:''' android, ios, mac, pc<br/>
+
<!-- GIDEROSOBJ:Timer -->
 +
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 +
'''Inherits from:''' [[Object]]<br/>
 +
 
=== Description ===
 
=== Description ===
<br />
+
The '''Timer''' class is used to execute a code at specified intervals.
The `Timer` class is used to execute a code at specified intervals. The listener functions are registered<br />
+
 
through `Event.TIMER` and `Event.TIMER_COMPLETE` events.<br />
+
The listener functions are registered through [[Event.TIMER]] and [[Event.TIMER_COMPLETE]] events.
 +
 
 +
=== Example ===
 +
'''Rotates a pixel 360°'''
 +
<syntaxhighlight lang="lua">
 +
-- let's define a pixel and add it to the stage
 +
local mypixel = Pixel.new(0xff0000, 1, 64, 64)
 +
mypixel:setPosition(64, 64)
 +
stage:addChild(mypixel)
 +
 
 +
function onTimer(event)
 +
  -- add 1 degree each time the function is called
 +
  mypixel:setRotation(mypixel:getRotation() + 1)
 +
end
 +
 
 +
-- create our timer and add an event listener
 +
-- 24 = delay in milliseconds
 +
-- (optional) 360 = number of repetitions (here the result is 360 degrees)
 +
local timer = Timer.new(24, 360)
 +
-- local timer = Timer.new(24) -- to run indefinitely
 +
timer:addEventListener(Event.TIMER, onTimer, timer)
 +
timer:start()
 +
</syntaxhighlight>
 +
 
 
{|-
 
{|-
| style="width: 50%;"|
+
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[Timer.delayedCall]] - delayed call a function after a set amount of time<br/>
+
[[Timer.delayedCall]] ''delay calls a function after a set amount of time''<br/><!--GIDEROSMTD:Timer.delayedCall(delay,func,data) delay calls a function after a set amount of time-->
[[Timer.new]] - creates a new Timer object<br/>
+
[[Timer.new]] ''creates a new Timer object''<br/><!--GIDEROSMTD:Timer.new(delay,repeatCount) creates a new Timer object-->
[[Timer.pauseAll]] - pause all timers<br/>
+
[[Timer.pauseAll]] ''pauses all timers''<br/><!--GIDEROSMTD:Timer.pauseAll() pauses all timers-->
[[Timer.resumeAll]] - resume all timers<br/>
+
[[Timer.resumeAll]] ''resumes all timers''<br/><!--GIDEROSMTD:Timer.resumeAll() resumes all timers-->
[[Timer.stopAll]] - stop all timers<br/>
+
[[Timer.stopAll]] ''stops all timers''<br/><!--GIDEROSMTD:Timer.stopAll() stops all timers-->
[[Timer:getCurrentCount]] - returns the current trigger count of the timer<br/>
+
 
[[Timer:getDelay]] - returns the time interval between timer events in milliseconds<br/>
+
[[Timer:getCurrentCount]] ''returns the current trigger count of the timer''<br/><!--GIDEROSMTD:Timer:getCurrentCount() returns the current trigger count of the timer-->
[[Timer:getRepeatCount]] - returns the number of repetitions the timer will make<br/>
+
[[Timer:getDelay]] ''returns the time interval between timer events in milliseconds''<br/><!--GIDEROSMTD:Timer:getDelay() returns the time interval between timer events in milliseconds-->
[[Timer:isRunning]] - returns the current running status of timer<br/>
+
[[Timer:getRepeatCount]] ''returns the number of repetitions the timer will make''<br/><!--GIDEROSMTD:Timer:getRepeatCount() returns the number of repetitions the timer will make-->
[[Timer:reset]] - stops the timer and sets the currentCount property to 0<br/>
+
[[Timer:isRunning]] ''returns the current running status of timer''<br/><!--GIDEROSMTD:Timer:isRunning() returns the current running status of timer-->
[[Timer:setDelay]] - sets the time interval between timer events in milliseconds<br/>
+
[[Timer:pause]] ''pauses timer''<br/><!--GIDEROSMTD:Timer:pause() pauses timer-->
[[Timer:setRepeatCount]] - sets the number of repetitions the timer will make<br/>
+
[[Timer:reset]] ''stops the timer and sets the currentCount property to 0''<br/><!--GIDEROSMTD:Timer:reset() stops the timer and sets the currentCount property to 0-->
[[Timer:start]] - starts the timer<br/>
+
[[Timer:setDelay]] ''sets the time interval between timer events in milliseconds''<br/><!--GIDEROSMTD:Timer:setDelay(delay) sets the time interval between timer events in milliseconds-->
[[Timer:stop]] - stops the timer<br/>
+
[[Timer:setRepeatCount]] ''sets the number of repetitions the timer will make''<br/><!--GIDEROSMTD:Timer:setRepeatCount(repeatCount) sets the number of repetitions the timer will make-->
| style="width: 50%;"|
+
[[Timer:start]] ''starts the timer''<br/><!--GIDEROSMTD:Timer:start() starts the timer-->
 +
[[Timer:stop]] ''stops the timer''<br/><!--GIDEROSMTD:Timer:stop() stops the timer-->
 +
 
 +
| style="width: 50%; vertical-align:top;"|
 
=== Events ===
 
=== Events ===
[[Event.TIMER]]<br/>
+
[[Event.TIMER]]<br/><!--GIDEROSEVT:Event.TIMER timer-->
[[Event.TIMER_COMPLETE]]<br/>
+
[[Event.TIMER_COMPLETE]]<br/><!--GIDEROSEVT:Event.TIMER_COMPLETE timerComplete-->
 
=== Constants ===
 
=== Constants ===
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 14:33, 13 July 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2011.6
Inherits from: Object

Description

The Timer class is used to execute a code at specified intervals.

The listener functions are registered through Event.TIMER and Event.TIMER_COMPLETE events.

Example

Rotates a pixel 360°

-- let's define a pixel and add it to the stage
local mypixel = Pixel.new(0xff0000, 1, 64, 64)
mypixel:setPosition(64, 64)
stage:addChild(mypixel)

function onTimer(event)
   -- add 1 degree each time the function is called
   mypixel:setRotation(mypixel:getRotation() + 1)
end

-- create our timer and add an event listener
-- 24 = delay in milliseconds
-- (optional) 360 = number of repetitions (here the result is 360 degrees)
local timer = Timer.new(24, 360)
-- local timer = Timer.new(24) -- to run indefinitely
timer:addEventListener(Event.TIMER, onTimer, timer)
timer:start()

Methods

Timer.delayedCall delay calls a function after a set amount of time
Timer.new creates a new Timer object
Timer.pauseAll pauses all timers
Timer.resumeAll resumes all timers
Timer.stopAll stops all timers

Timer:getCurrentCount returns the current trigger count of the timer
Timer:getDelay returns the time interval between timer events in milliseconds
Timer:getRepeatCount returns the number of repetitions the timer will make
Timer:isRunning returns the current running status of timer
Timer:pause pauses timer
Timer:reset stops the timer and sets the currentCount property to 0
Timer:setDelay sets the time interval between timer events in milliseconds
Timer:setRepeatCount sets the number of repetitions the timer will make
Timer:start starts the timer
Timer:stop stops the timer

Events

Event.TIMER
Event.TIMER_COMPLETE

Constants