WML语言基础(WAP建站)五 |
| 作者:佚名 来源:转载 发布时间:2005-9-5 16:49:33 |
|
加上句点号(.)和库函数的标准调用来实现,语法格式为:
函数库名.函数名(参数列表); 例如,WML Script的浮点库即Float库中有一个开根方的函数sqrt,该函数只有一个参数,那么调用squrt库函数的方法为: Float.sqrt(number);//这里要求number大于或等于0 下面给出了调用库函数的简单例子。首先一param参数值调用Lang.abs()函数,返回结果加1后再作为参数调用Float.sqrt()函数,它的返回结果作为内部函数test的返回值: function test(param){ return Float.sqrt(Lang.abs(param)+1); }; 2.3 函数的嵌套调用 WML Script的函数定义都是互相平行、独立的,定义函数的时候我们不能在一个函数内定义另外一个函数,也就是说,函数定义是不能嵌套的。但是,函数调用确是可以嵌套的,也就是说,我们可以在调用一个函数的过程中调用另外一个函数。 它的执行过程是: (1)执行a函数开头部分; (2)遇到调用b函数的操作语句,流程则专区执行b函数; (3)执行b函数开头部分; (4)遇到调用c函数的操作语句,流程则专区执行c函数; (5)执行b函数,如果没有其他嵌套的函数,则完成c函数的全部操作; (6)返回调用c函数的语句,即返回到b函数; (7)继续执行b函数中尚未执行的操作,直到b函数结束; (8)返回a函数中调用b函数的语句; (9)继续执行a函数的剩余操作,直到函数结束。 function myFunC(param1){ return param1*param1=Float.squt(Lang.abs(param)+1); }; function myFunB(param0){ return myFunC(param0+1)*|param0+12; }; function myFunA(param){ return myFunB(param*param+1); };
WML Script的预编译主要用于在编译阶段控制编译器的行为。与编译头一般在文件开头和函数声明之前指定,WML Script规定所有的预编译头都是一关键词use加上指定的预编译属性进行指定。 在大多数的编程中,我们比较长用的预编译行为主要涉及外部文件声明、访问权和Meta信息设置。 5.3.1 外部文件 我们知道,使用URL地址可以定位一个WML Script文件。利用该URL地址;在WML Script编程中我们可以通过预编译来调用WML Script的外部文件,外部文件预编译头的声明方法是use url,其语法格式如下: use url外部文件名 "URL"地址 这样,我们在当前文件的编程中就可以使用该预编译头声明的外部文件,从而可以调用该外部文件的函数。其语法格式为: 外部文件名#函数名(参数列表); 例如,我们希望在当前的WML Script程序中调用OtherScript外部文件中的check()函数,而且我们知道OtherScript文件的URL地址为http://www.host.com/app/script。因此,我们可以使用use url来声明这一外部文件: use url OtherScript"http://www.host.com/script" 随后,我们就可以在程序中调用OtherScript中的check()函数了: function test(par1,par2) { return OtherScript#check(par1,parr2); }; 其中调用执行的过程如下: (1)找到WML Script外部文件的URL地址; (2)当前函数从指定的URL地址值装载外部文件; (3)检测外部文件的内容,并执行其中的check()函数。 ure url 预编译头指定的外部文件名在当前程序中必须唯一,用户不能指定不同URL地址的同名外部文件,否则在调用外部文件时就会发生混乱。 另外,use url预编译头中的URL地址也可以是相对URL地址。相对URL的起始位置是当前程序文件所在的位置,并在此基础上根据URL进行定位。 如果URL地址中的字符包含有转义字符,则WML Script将根据转义要求进行转义。不过,程序在编译的时候编译器并不会对他们进行转义,而是在程序执行时完成,检查URL格式和URL地址的有效性。 5.3.2 访问权限 我们可以使用访问权限预编译设保护文件的内容,实现访问控制。WML Script编程中,必须在调用外部函数之前使用访问权限预编译头声明外部文件的访问权限。不过,WML Script访问权限检查的缺省值是不进行检查,即disabled.但访问权限一经声明,以后当调用外部函数的时候,编译器就会检查外部文件的访问权限,以决定调用这是否有权使用该文件及其内含函数。 访问权限预编译头的声明方法是use access,其语法格式如下: use access domain操作域名 path操作路径: 访问权限预编译头通过指定domain和path属性来决定编译器将要进行什么样的检查工作。如果文件有domain或者path属性,那么文件所在的URL就必须和属性中的值一致。比较时,域和路径都依据URL大写规则进行比较。具体的比较预则如下: (1)操作域与URL中的域后缀相匹配。与后缀匹配是值所有的子域从后向前都必须一致。例如:www.wapforum.org和wapforum.org相匹配,而与forum.org并不匹配。 (2)操作路径和URL中的路径前缀相匹配。路径前缀匹配是值从前向后必须一致。例如:“/X/Y”与“/X”相匹配,而不是和“/XZ”相匹配。 (3)却省的domain数行为当前的文件域,就是“/”。 不过,为了简化编程,有时WMLScript并不需要直到外部文件的绝对路径,我们只需提供文件的相对URL即可,用户浏览器执行程序是卡相对路径自动转换为绝对路径,根据路径属性进行匹配。例如:如果访问权限预编译头及其指定属性为: use access domain"wapforum.org"path"/finance"; 则可以使用以下的路径来调用指定文件中的外部函数,它们都符合相对URL地址匹配规则: http://wapforum.org/finance/money.cgi http://www. wapforum.org/finance/money.cgi http://www. wapforum.org/finance/demos/packages.cgi?x+123&y+456 而以下的路径调用则非法的,因为它们或者操作域不对,或者URL地址不能与指定的相对URL相匹配: heep//www.test.net/finance http//www.qapforum.org/internal/foo.wml 需要强调指出的是,WML Script规定,同一程序中只能定义一个访问权限与编译头,否则就会导致编译错误。 5.3.3 Meta 信息 我们还可以通过与编译头的形式声明WML Script文件的Meta信息。Meta信息主要用于指定文件所需Mete属性的属性名(Property name)、属性值(Content)以及文件的配置(信息),属性都属于字符串类型的数据。Mate信息域编译头使用use meta声明,其语法格式为: usr meta 属性 该属性Met |
| [] [返回上一页] [打 印] |
|
文章评论 |
