电脑技术学习

WAP开发中制作简单动画页面

dn001

本例通过使用WML的ontimer事件来延时交替显示两幅图像,来实现一个简单的动画应用。本例同时给出了从WML向WMLScript函数传递变量值,以及获取返回值的编程方法。WAP页面中使用的图像只能是1位的位图图像,格式为WAP专用的wbmp格式,有关图像格式转换的方法可参见本书第11章的内容。

本例有两个程序文件:animate.wml和animated.wmls。animate.wml执行时首先给time变量赋予初始值20,然后在用户选择“运行动画(Run Animation)选项后对存放图像文件的变量image进行初始化,并赋予它第1张图像文件名;当ontimer事件激活时,它就调用animated.wmls文件中的main()函数,该函数将每次使time变量的值减少2,并交换image变量的图像文件名,随后返回新的time值和image值,并在WAP浏览器上显示图像。这一过程将在ontimer事件激活时重复一次,直到time变量的值最后减少到0。

Animate.wml文件的程序代码如下:


<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/ wml11.dtd">

<wml>

<card>

<option>Run Animation; // 定义一个选项

<onevent type="onpick">

// 变量赋初值

<setvar name="time" value="20"/>

<setvar name="image" value="image1.bmp"/>

</onevent>

</option>

<onevent type="ontimer">

// 事件激活(即延时结束)后,执行animated.wmls文件中的外部函数main()

<go href="animated.wmls#main()">

</go>

</onevent>

// 显示图像及提示信息

<p align="center"><img alt="animate" src="$(image)"/></p>

<p align="center">A simple animation</p>

</card>

</wml>

Animated.wmls文件的程序代码如下:

extern function main()

{

// 获取初始变量值

var image = WMLBrowser.getVar("image");

var remianingTime = Lang.parseInt(WMLBrowser.getVar("time"));
;
;// 减少time的时间值,并判断值为0时终止执行

remiainingTime -= 2;

WMLBrowser.setVar("time", remainingTime);

if (remainingTime > 0); {

if (image == "image1.bmp") {

WMLBrowser.setVar("image", "image2.bmp");// 替换显示的图像文件

}; file://如果当前显示的是image1.bmp,则换为image2.bmp

else {

WMLBrowser.setVar("image", "image1.bmp");

}; // 否则就换为image1.bmp

WMLBrowser.referesh();

}; // 如果延时大于0

}


本 章 小 结
本章我们讲解了WMLScript语言提供的库函数,以及第三方提供的WMLScript非标准库函数,涉及的内容主要包括各函数的功能、用法、参数作用及取值范围等。作为WML、WMLScript学习的总结,本章最后还讲解了几个使用WML、WMLScript开发的WAP应用实例。本章内容较多,读者不可能一下子熟练地掌握全部内容,但希望大家能知道实现各种具体无线网络功能时所要用到的库函数,这样等实际开发时就可以来快速查阅这些函数的详细内容,从而提高开发效率。