Previous chapter has described how events are triggered by the users and how do we handle them using event handlers.
Sometime, you may want something to happen without the user explicitly having to activate a control. Yes, WML provides you ontimer event to handle this.
The ontimer event is triggered when a card's timer counts down from one to zero, which means that it doesn't occur if the timer is initialized to a timeout of zero.
You can bind a task to this event with the <onevent> element. Here is the syntax:
<onevent type="ontimer"> A task to be performed. </onevent>
Here, a task could be <go>, <prev> or <refresh>.
A timer is declared inside a WML card with the <timer> element. It must follow the <onevent> elements if they are present. (If there are no <onevent> elements, the <timer> must be the first element inside the <card>.) No more than one <timer> may be present in a card.
The <timer> element supports the following attributes:
|name||text||Sets a name for the element.|
|value||number||Specifies the timer after which timer will be expired. Timeouts are specified in units of a tenth of a second.|
|class||class_data||Sets a class name for the element.|
|id||element ID||A unique ID for the element.|
Following is the example showing usage of <timer> element.
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd"> <wml> <card id="splash" title="splash"> <onevent type="ontimer"> <go href="#welcome"/> </onevent> <timer value="50"/> <p> <a href="#welcome">Enter</a> </p> </card> <card id="welcome" title="Welcome"> <p> Welcome to the main screen. </p> </card> </wml>
When you load this program it shows you following screen:
If you do not select given Enter option then after 5 seconds, you will be directed to Welcome page and following screen will be displayed automatically.