独上高楼网站
  •    你所在位置:首页 VS.netXMLWML〉WML 事件
  • WML 事件
  • 作者:佚名  文章来源:http://homepage.yesky.com/  发布日期:2008-03-04  浏览次数:202
  • 打印这篇文章
  • WML 事件

    WML的事件基本上分为两大类,一类是键盘(包括软硬按钮)输入事件,用< do>标签来处理,另一类是相关页面内部的事件,用< onevent>标签来处理。

       < do>的语法如下:< do type="type" label="label" name="name" optional="false|true">任务< /do>,任务就是以前提到的四种任务。< do>的属性中,type是必选的,其他为可选。
       *label属性,指定了软按钮在屏幕上的显示文本。目前type属性为delete,help,prev时该属性无效。 
       *name属性,为< do>取个名字,同一的CARD里的< do>不能重名。如果CARD级的< do>和DECK级的< do>同名,则覆盖DECK级的< do>。
       *optional属性,指定手机是不是可以忽略这个事件,默认值是false。
       *type属性,指定触发的事件,具体如下;
       type值    触发原因
       accept    调用ACCEPT按钮机制
       delete    调用DELETE按钮机制
       help     调用HELP按钮机制
       options   调用选择按钮机制
       prev     调用PREV按钮机制
       reset    调用清除和重新设定手机状态时的RESET机制(目前不支持)
       unknown    调用unknown机制,等于type=""(目前不支持)
       vnd. co-type 调用厂商特定的机制(目前不支持)
       X-*, x-*   供以后使用(不保留)(目前不支持)

    test6.wml
    ---------------
    < ?xml version="1.0"?>
    < !DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    < wml>
    < head>
    < meta http-equiv="Cache-Control" content="max-age=0"/>
    < /head>
    < card id="card0" ordered="false">
    < do type="accept" label="InputName" name="do1">
    < go href="#card01"/>
    < /do>
    < p>
    NAME:< input name="userName" title="User Name" type="text" format="*M" emptyok="false" maxlength="12"/>
    < /p>
    < /card>
    < card id="card01">
    < p>
    You name is $(userName:noesc).
    < /p>
    < /card>
    < /wml>

       < onevent>的语法如下,< onevent type="type">任务< /onevent>,必选属性type的取值如下:
       type值     如果用户执行了以下操作就执行任务
       onpick     用户选择或不选一个< option>项时。
       onenterforward 用户使用< go>任务到达一个CARD时。
       onenterbackward 用户使用< prev>任务返回到前面的CARD时,或者按BACK按钮时。
       ontimer     当< timer>过期时。

    test7.wml
    ---------------
    < ?xml version="1.0"?>
    < !DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    < wml>
    < head>
    < meta http-equiv="Cache-Control" content="max-age=0"/>
    < /head>
    < card id="card0" ordered="false">
    < p>
    Please select a city...
    < select title="Cities List" name="city">
    < option title="Beijing" value="Beijing">
    < onevent type="onpick">
    < go href="#card01"/>
    < /onevent>Beijing< /option>
    < option title="Shanghai" value="Shanghai" onpick="#card01">Shanghai< /option>
    < option title="Hongkong" value="Hongkong" onpick="#card01">Hongkong< /option>
    < /select>
    & lt;/p>
    < /card>
    < card id="card01">
    < p>
    You are Living in $(city:noesc)
    < /p>
    < /card>
    < /wml>

       < timer/>可以用来在用户不进行任何操作的一段时间后,自动执行一个任务,任何激活CARD页面的任务和用户操作都会启动< timer/>,而任务进行时,< timer/>就停止。每个CARD只能有一个< timer/>,一个< timer/>只能触发一个任务。语法如下:< timer name="variable" value="value"/>,其中name为可选属性,指定为一个变量名,当退出该CARD时,该变量存储此时定时器的值,当定时器超时时,手机将该变量设为0;value为必选属性,用来设置定时器的定时值,最小单位为0.1秒。

    test8.wml
    ---------------
    < ?xml version="1.0"?>
    < !DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    < wml>
    < head>
    < meta http-equiv="Cache-Control" content="max-age=0"/>
    < /head>
    < card id="card1" ontimer="#card2">
    < timer name="time1" value="50"/>
    < p align="center">
    After 5s, goto card2
    < /p>
    < /card>
    < card id="card2">
    < onevent type="ontimer">
    < go href="#card1"/>
    < /onevent>
    < timer name="time2" value="50"/>
    < p align="center">
    Here is card2!
    < /p>
    < /card>
    < /wml>

       再提一下,< onevent> < timer> < do>三者必须按以上顺序写。

       此外在DECK级还可以加入< template>,用来将事件捆绑在DECK级上,语法如下:
       < template onenterforward="url" onenterbackward="url" ontimer="url">
       < do>或者< onevent>
       < /template>


    test9.wml
    ---------------
    < ?xml version="1.0"?>
    < !DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    < wml>
    < head>
    < meta http-equiv="Cache-Control" content="max-age=0"/>
    < /head>
    < template>
    < do type="accept" label="deckPress" name="do1">
    < go href="#card01"/>
    < /do>
    < /template>
    < card id="card0" ordered="false">
    < do type="accept" label="cardPress" name="do1">
    < go href="#card02"/>
    < /do>
    < p>
    Press ACCEPT...
    < /p>
    < /card>
    < card id="card01">
    < p>
    Here is card01
    < /p>
    < /card>
    < card id="card02">
    < p>
    Here is card02
    < /p>
    < /card>
    < /wml>

  • 打印这篇文章
  • 与本文主题相关的文章
  • 返回首页