WAP初级教程2
2005年4月21日 作者: 转载出处: 推荐人:szgamer 我要爆料将本文转发至:|||||--事件 (EVENT)
<anchor> 链接
<onevent> 固有事件
<timer> 计时器
<do> 用户触发事件
DECK级事件
任务不能在真空中生存,它们必须绑定倒某个事件上才能做一些有用的事情。事件发生--〉任务执行,这才是完整的进程控制。
有4个元素可以帮助你完成事件对任务的绑定:<anchor>、<onevent>、<timer>和<do>。
<anchor> 链接
象HTML一样,WML也可以定义到其他程序的链接。在HTML中,链接通常用下划线和特殊颜色的方式表示跟其他内容的区别。在WAP终端上则没有严格的规则说如何表示一个链接,一般采用反白的显示方式。
<anchor>的语法如下:
<anchor
title="STRING"
xml:lang="STRING"
>
<br>, <go>, <img>, <prev>, <refresh>, TEXT
</anchor>
title:链接的标题;
xml:lang:语言编码。
在这种定义方式中,实际上链接一般是通过<anchor>中包括的<go>元素完成的。比如下面的例子定义了2个CARD,点击第一个CARD里的“click me”链接会跳转到第2个CARD:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http ://www.wapforum.com/DTD/wml_1.1.xml">
<wml>
<card id="Hello" title="Hello">
<p>Hello,
<anchor>click me
<go href="#bye"/>
</anchor>
</p>
</card>
<card id="bye" title="Bye">
<p>Bye, guys</p>
</card>
</wml>
点击前显示: 点击后显示:
------- Hello -------
Hello,
-------- bye --------
Bye, guys
链接还有一种短格式,语法如下:
<a
href="STRING"
title="STRING"
xml:lang="STRING"
>
<br>, <img>, TEXT
</a>
除了跟原来一样的两个属性以外,多了href属性,可以对它直接指定URL。例如下面的例子定义了一个带有图像的链接:
<a title="HotBars" href="www.wap86.net/HotBars.wml">
<img src="hot.wbmp" alt="Hot Bars" />
</a>
除了跟原来一样的两个属性以外,多了href属性,可以对它直接指定URL。
<onevent> 固有事件 [TOP]
WML定义了4种由用户终端触发的固有事件:
oneventforward:当用户被<go>任务或其他机制(如一个SCRIPT过程)引导到一个CARD时触发;
oneventbackward:当用回被<prev>或其他机制(如在设备上按BACK按钮)引导到一个CARD时触发;
ontimer:当TIMER计时结束时触发。定义TIMER计时器可以使用<timer>元素,见下一节;
onpick:当用户按下一个<option>选项时触发(可以是选中或取消选择)。
把这些事件绑定到一个任务要使用<onevent>元素,它的语法如下:
<onevent
type="oneventforward | oneventbackward | ontimer | onpick"
>
<go>, <noop>, <prev>, <refresh>
</onevent>
下面的例子演示了如何使用固有事件在CARD调入时清空变量。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1">
<onevent type="oneventforward">
<refresh>
<setvar name="firstname" value=""/>
<setvar name="lastname" value=""/>
</refresh>
</onevent>
<p>
You have no name!
</p>
</card>
</wml>
<timer> 计时器 [TOP]
看名字就知道,这是个计时器,它在经过规定的计时时间以后产生一个任务。<timer>计时器只在所属CARD里有效:当进入CARD时,计时器开始工作;时间一到,触发任务;如果离开CARD,计时器停止。语法如下:
<timer
name="STRING"
value="NUMBER"
/>
name:可选。指定一个包含计时时间的变量,在计时器开始工作以后,变量的值会逐渐减少。如果这个变量在<timer>之前就已经存在并且赋值为一个非负整数,那后面value属性的值会被忽略,直接使用变量里的值作为计时时限。
value:必选。指定计时时间,以1/10秒为单位。
下面的例子每隔1秒显示不同的文字(当然,你有兴趣改成图像也可以)。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Hello" title="Hello">
<onevent type="ontimer">
<go href="#card2">
</onevnet>
<timer value="10"/>
<p>Hello!</p>
</card>
<card id="Take care">
<onevent type="ontimer" title="Take care">
<go href="#card3">
</onevnet>
<timer value="10"/>
<p>R U tired?</p>
</card>
<card id="Rest">
<onevent type="ontimer" title="Rest">
<go href="#card1">
</onevnet>
<timer value="10"/>
<p>Take a rest!</p>
</card>
</wml>
显示结果如下,注意会不断循环。 Sport选择:
第1秒 第2秒 第3秒
------ Hello ------
Hello!
----- Take care ----
R U tired?
------- Rest -------
Take a rest!
还有一个例子,通常用来做网站封面,显示一段欢迎词以后进入正式内容。这里没有使用图片,各位可以自己加上试试看。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Welcome to WAP86" ontimer="wap86.wml">
<timer value="30"/>
<p>
Hello!
Welcome to WAP86 - the paradise of WML developers.
</p>
</card>
</wml>
部件 功能
accept 确认,接受输入
prev 退回历史页面访问堆栈里上一个CARD
help 上下文关联的帮助信息
reset 重设设备状态
options 上下文关联的选项或附加操作
delete 删除当前内容或选择
unknown 由开发者自己定义
<do> 用户触发事件 [TOP]
每个WAP终端都预定义了一系列用户界面部件,如手机上的按钮、触摸屏上的图表、声音指令或者其他一些很容易是别的部件。WML1.1定义了右面那些WAP兼容终端必须支持的部件。但是要说明的是,只有prev有预先定义的功能,其他的只是概念上的定义,需要根据开发者激活并赋予一定的动作。
当用户激活这些部件的时候会产生相应的事件。你可以使用<do>元素捕获这些事件并对其做出反应。下面是<do>的语法:
<do
type="accept | prev | help | reset | options | delete | unknown"
lebel="STRING"
name="STRING"
optional="true | false"
xml:lang="STRING"
>
<go> | <noop> | <prev> | <refresh>
</do>
type:必选属性,内容只能是那7种;
label:用户接口部件的显示标签。如果终端不能显示则被忽略。WML1.1建议此属性长度限制在6个英文字符以内;
name:标志“事件/任务”绑定关系的唯一名称(在CARD范围内)。CARD级的<do>事件替换同名的DECK级<do>事件(见下一节)。如果不指定name属性或name为空字符串,则name默认为type的类型;
optional:告诉终端此软按钮在屏幕中是否显示。如果此值设为true,则忽略本<do>元素。默认值为false;
xml:lang任务:语言代码。
跟其他“事件/任务”绑定关系一样,<do>里的任务定义必须是<go>、<noop>、<prev>或<refresh>中的一个。
下面例子演示了<do>的使用方法。用户按了不同的按钮会被导向不同的CARD。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Card1" title="WAP86 Links">
<do type="accept" label="Links" optional="false">
<go href="#Links"/>
</do>
<do type="help" label="Help" optional="false">
<go href="#Help"/>
</do>
<p> WAP86's perfect links</p>
</card>
<card id="Links" title="WAP86 Links">
<p> Select one:<br><br>
<a href="www.wap86.net">WAP86</a><br>
<a href="www.at86.com">AT86</a>
</p>
</card>
<card id="help" title="Help">
<do type="accept" label="Links" optional="false">
<go href="#Links"/>
</do>
<p>
Select "Links" button to view the links.
</p>
</card>
</wml>
显示结果
主画面: 按下“Links”按钮以后: 按下“Help”按钮以后:
---- WAP86 Links ---
WAP86's perfect links
Links Help
---- WAP86 Links ---
Select one:
>[ WAP86 ]
[ AT86 ]
------- Help -------
Select "Links" button to view the links.
Links
DECK级事件 [TOP]
前面(DECK一节,关于<template>)已经讲过可以用<template>元素定义DECK级事件,做法跟CARD级事件一样,只要在<template>元素里包含<do>或<onevent>事件就可以。这种做法可以定义一些在每个CARD里都需要定义的事件,而不需要重复说明。比如下面的例子给所有的CARD定义了BACK按钮以便返回上一页:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<template>
<do type="prev" label="BACK" optional="false">
<prev/>
</do>
</template>
<card id="Links" title="WAP86 Links">
<do type="help" label="Help" optional="false">
<go href="#Help"/>
</do>
<p> Select one:<br><br>
<a href="www.wap86.net">WAP86</a><br>
<a href="www.at86.com">AT86</a>
</p>
</card>
<card id="help" title="Help">
<do type="accept" label="Links" optional="false">
<go href="#Links"/>
</do>
<p>
Select "Links" button to view the links.
</p>
</card>
</wml>
分享到:
相关推荐
【WAP初级教程第二章:WML语言基础】 在WAP技术中,WML(Wireless Markup Language)是专门设计用于无线设备,如移动电话、PDA等的标记语言,它是XML的一个子集。WML的基本功能是创建适应于小屏幕、有限内存和处理...
**WAP初级教程笔记** WAP(Wireless Application Protocol,无线应用协议)是为移动设备设计的一种通信协议,它使得用户可以通过手机等移动设备访问互联网上的信息和服务。本教程笔记旨在帮助初级WAP用户理解其基本...
**WAP初级教程** WAP(Wireless Application Protocol,无线应用协议)是1997年推出的用于在移动设备上浏览互联网内容的技术标准。它旨在为低带宽、内存有限的移动设备提供一种访问互联网信息的方式。WAP的出现使得...
**wap初级教程** WAP(Wireless Application Protocol)即无线应用协议,是一种在移动设备上进行数据通信的技术标准,主要用于创建手机网页和提供移动互联网服务。这个初级教程将引导我们了解WAP的基础知识,包括...
【WAP初级教程第一章】 WAP (Wireless Application Protocol) 是一种用于移动设备访问互联网的技术标准,它允许用户通过手机或其他无线终端浏览网页、发送邮件、获取信息等。本章节主要介绍了如何将现有的Web服务器...
【Wap技术初级教程、中级教程】 在Wap技术的学习过程中,从初级到中级的过渡意味着我们需要深入理解网络通信的基本原理,尤其是HTTP 1.1协议及其相关优化策略,如缓存和验证机制。以下是对这些知识点的详细阐述: ...
**WAP 2.0 开发指南:WML 初级教程及 WAP 编程全书** 在移动通信领域,WAP(Wireless Application Protocol)技术曾是连接移动设备与互联网的重要桥梁,尤其是WAP 2.0版本,它极大地提升了用户在移动设备上的网页...
压缩包中的核心文件“WML初级教程.exe”可能是一个交互式的教学程序,包含了文字讲解、示例代码以及可能的练习题,帮助学习者深入理解和实践WML的编写。 **WML基础知识:** 1. **WML结构**:WML文档由一系列的 ...
wap的初级和中级学习教程,可以用它来学习入门。是下载网页制作而成的chm。
2. **学习材料**:使用WML编写的文本教程、词汇表和语法练习。 3. **互动测试**:使用JSP实现的在线测试,能够即时评估用户的学习进度。 4. **用户账户管理**:JSP可以处理用户的注册、登录和成绩记录。 5. **语音...
总的来说,WML初级教程涵盖了从基本的文档结构到交互元素和输出格式的各种知识点,适合入门级和精通级开发者学习。理解并熟练掌握这些标签和属性,能够帮助开发者创建适应移动设备的高效、简洁的网页应用。
傻瓜级beini初级破解wap教程!很简单一看就会
如果您是初学者,请您阅读《网站构建初级教程》。 如果您是开发者,请您阅读《网站构建高级教程》。 W3School 新闻 苹果公司发布 Safari 5 浏览器 W3C 发布 HTML 5 工作草案 W3School 更新信息 与 W3C 中国办事处...
2. **CMNET**:CMNET是中国移动互联网的简称,是一个基于宽带IP技术的全国性电信基础网络。它不仅提供传统的话音、传真服务,还支持数据、图像和多媒体服务。CMNET作为移动数据业务的承载网,是10大互联网络之一,如...
`WAP初级教程`可能涵盖WAP(无线应用协议)的基本概念,WAP是一种允许移动设备通过无线网络访问Internet服务的技术标准。WAP支持包括WML在内的多种标记语言,并提供了一个框架,使开发者能够构建适应于移动设备的...
如果您是初学者,请您阅读《网站构建初级教程》。 如果您是开发者,请您阅读《网站构建高级教程》。 W3School 新闻 W3School 测试版本号升级为 alpha Search: 参考手册 HTML 4.01 XHTML 1.0 CSS 2.0 ...
本教程PPT旨在帮助初级J2ME开发者理解其核心概念和技术。 **J2ME架构** J2ME的架构主要由两部分组成:配置(Configurations)和框架(Profiles)。配置定义了设备的最低硬件和软件需求,而框架则针对特定类型的...
如果您是初学者,请您阅读《网站构建初级教程》。 如果您是开发者,请您阅读《网站构建高级教程》。 W3School 新闻 W3School 测试版本号升级为 alpha Search: 参考手册 HTML 4.01 XHTML 1.0 CSS ...
如果您是初学者,请您阅读《网站构建初级教程》。 如果您是开发者,请您阅读《网站构建高级教程》。 W3School 新闻 苹果公司发布 Safari 5 浏览器 W3C 发布 HTML 5 工作草案 W3School 更新信息 与 W3C 中国办事处...