上一篇 | 下一篇

9.8 WML/WMLScript应用举例

发布: 2007-7-20 13:51 | 作者: 佚名 | 来源: 转载 | 查看: 15次


9.8  WML/WMLScript应用举例
通过前面的学习,我们已经全面了解了WMLScript的编程语法、规则和各种库函数,为进一步加强大家对WMLScript编程的认识,我们本节先给出一个WMLScript库函数的使用举例,然后给出Phone.com提供的几个综合利用WML、WMLScript开发的应用实例。

9.8.1  WMLScript库函数应用举例
我们利用有关库函数设计了一个计算抵押贷款每月偿还金的外部函数。该函数名为payment,它有4个参数:varname、principal、interest和num_payments,其中varname用于存放最后的计算结果,principal为本金,interest为利率,num_payments为偿款次数。用到的库函数是:用于幂运算的Float.pow( ),用于字符串格式化输出的String.format( ),用于浏览器变量显示的WMLBrowser.setVar( )以及用于浏览器刷新的WMLBrowser.refresh( )。

程序如下:

extern function payment(varname, principal, interest, num_payments) {

         /*

          * 利息计算公式为:

          *

          * If (i != 0), then:

          * pmt = principal * [i * (1+i)^n / ((1+i)^n - 1)]

          *

          * If (i == 0), then:

          * pmt = principal / n

          */

         var mi = interest/1200;                   // 由年度利率计算每月利率

         var payment = 0;

         if (mi != 0) {

                   var tmp = Float.pow((1 + mi), num_payments);

                   payment = principal * (mi * tmp / (tmp - 1));

         } else {

                   if (num_payments != 0)

                            payment = principal / num_payments;

                   }

         var s;

         if (payment != 0)

                   s = String.format("$%6.2f", payment);

         else

                   s = "Missing data";

 

         /*

          * 将结果发送到浏览器显示

         */

         WMLBrowser.setVar(varname, s);

 

         /*

          * 刷新当前浏览器

         */

         WMLBrowser.refresh();

};

9.8.2  数值范围有效性检验实例
本例主要用于说明使用WML和WMLScript语言实现数值有效性检验的具体方法。

本例共有两个程序文件:validate.wml和validator.wmls。其中validate.wml页面文件建立了3个卡片:一个用于让用户输入指定范围的数值,另外两个用于显示判断结果。validator.wmls文件的程序用于判断用户输入的数值,看其范围是否有效。如果没有超出指定的范围,则向WAP浏览器返回数值结果,否则就向用户显示数值超出范围的错误信息。

Validate.wml文件的程序清单如下:

 

<?xml version="1.0"?>

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

 

<wml>

    // 初始化卡片

    <card id="first">

        <onevent type="onenterforward">

            <refresh>

                <setvar name="num" value=""/>

            </refresh>

        </onevent>

 

    <p>

        <do type="accept" label="valid">

            // 调用validator.wmls中的外部函数validate()进行有效性检验
;     <go href="validat

此新闻共有3页 1 2 3

字号: | 推荐给好友

 

评分:0

我来说两句

seccode