第9章 输入文本和字符串
2008年07月23日 02:06:19 来源:教师自助餐网-汝明工作室


                        Flash中的文本形式有3种,即静态文本、动态文本和输入文本。输入文本可以接受用户输入,这也是响应键盘事件的一种。输入文本是一种人机交互工具,输入文本作为变量可以被ActionScript识别。

                        有许多方法可以操纵String(字符串)对象,如使用运算符“+”连接字符串,使用substring和substr函数从目标字符串中截取子字符串,使用indexOf函数确定匹配字符串在目标字符串中的位置等。


                        9.1 输入文本
                        Flash中的文本形式有3种,即静态文本、动态文本和输入文本。输入文本可以接受用户输入,这也是响应键盘事件的一种。

                        3种形式的文本都是由文本工具
                        创建的,要创建输入文本,首先要使用文本工具绘制一个文本框,然后在属性面板中将该文本框的类型设置成输入文本
                        在输入文本的属性面板中,除可以设置一般的文本格式外,还可以单击 按钮将文本显示为HTML格式,单击
                        按钮为文本添加边框,在 后面的下拉列表框中设置文本的换行格式或将文本设置成密码显示。
                        输入文本最重要的是变量名,如图9-2所示中的“变量”文本框,其中的myInputText即是该输入文本的变量名。输入文本变量和其他变量类似,变量的值会呈现在输入文本框中,输入文本框中的值同时也作为输入文本变量的值,它们之间是等价的。

                        如在场景中绘制了一个变量名为myInputText的输入文本框,然后在主时间轴的帧动作面板中添加如下ActionScript:

                        Key.addListener(_root);
                        _root.onKeyDown = function() {
                        trace(_root.myInputText);
                        };
                        以上脚本创建一个键盘侦听器,当按下键时即将输入文本myInputText中的内容显示在输出窗口中。测试一下您可以看到,输出窗口不会漏掉输入的每个字符,并且每输入一个字符即输出一行。

                        9.2 字符串
                        字符串是一种特殊类型的数据,对字符串可以进行多种操作。
                        9.2.1 连接字符串
                        要连接两个字符串,可以使用“+”运算符。如下所示:
                        var myString = "Hello";
                        myString += " World.";
                        trace(myString);
                        输出窗口中将输出如下所示的字符串:
                        Hello World.
                        您可以在一行ActionScript中使用多个“+”运算符,如下所示:
                        myStr1 = "How";
                        myStr2 = "are";
                        myStr3 = "you";
                        myStr = myStr1+" "+myStr2+" "+myStr3+"?";
                        trace(myStr);
                        输出窗口中将输出如下所示的字符串:
                        How are you?
                        9.2.2 截取字符串
                        从字符串中可以截取它的子字符串。例如,下面的脚本从字符串中截取第5到第14个字符组成的子字符串:
                        myString = "ActionScript is so useful!";
                        childStr = myString.substring(4, 14);
                        trace(childStr);
                        截取字符串函数substring有两个参数,第一个参数表示要截取的字符串的开始位置,第2个参数表示要截取的字符串的结束位置。

                        输出窗口中输出如下所示的子字符串:
                        onScript i
                        我们要截取的子字符串是从第5个开始,为什么substring的参数中要从4开始呢?这是因为在ActionScript中,通常是从0开始计数的,即上面的字符串中第0位上是A,第1位上是c,以此类推。那么既然从0开始计数,第14个字符就应该是第13位,为什么第2个参数不是13而是14呢?这是因为substring的第2个参数是指要截取到的位置,即要截取的最后一个字符是它前面的一个字符,所以它应该比要截取的最后一个字符多一位。

                        还有一种方法可以截取字符串,这就是substr。substr与substring命令的区别在于substr的第2个参数代表要截取的子字符串的长度。如下所示的ActionScript实现与前例相同的效果:

                        myString = "ActionScript is so useful!";
                        childStr = myString.substr(4, 10);
                        trace(childStr);
                        在输出窗口中输出子字符串:
                        onScript I
                        还有一个特殊的截取字符串的命令charAt。charAt可以从字符串的指定位置截取一个字符,如要从前面的字符串中截取第6位上的字符S,可以使用如下所示的ActionScript:

                        myString = "ActionScript is so useful!";
                        childStr = myString.charAt(6);
                        trace(childStr);
                        输出窗口中将输出字符S。
                        9.2.3 字符串函数
                        String对象有很多内置函数,使您可以对字符串进行各种操作。
                        indexOf方法用于从目标字符串中查找另一字符串的索引,即与另一字符串相匹配的子字符串的起始位置。如下所示:
                        myString = "Macromedia Flash MX";
                        myStr = myString.indexOf("Flash", 0);
                        trace(myStr);
                        以上脚本从目标字符串“Macromedia Flash
                        MX”中查找字符串“Flash”的位置,运行该脚本,输出窗口中输出11。
                        如果目标字符串中没有找到相匹配的字符串,将返回-1。
                        indexOf的第2个参数表示从目标字符串中开始查找的起始位置,前例中的0表示从目标字符串的第1个字符开始查找。该参数可以省略,将默认从第1个字符开始查找。

                        与indexOf函数相对的是lastindexOf,用它查找在参数所指定的开始位置之前的最后一个子字符串的索引,即逆序查找。如下所示:

                        myString = "Macromedia Flash MX";
                        myStr = myString.lastindexOf("a", 12);
                        trace(myStr);
                        运行该脚本,输出窗口中输出9。
                        如果将参数12改成13或更大的数,或将该参数省略,将返回结果13。
                        String对象的toLowerCase函数实现将大写字母转换为小写形式,toUpperCase函数实现将小写字母转换为大写形式。如下所示:

                        myString = "Macromedia Flash MX";
                        myStr1 = myString.toLowerCase();
                        myStr2 = myString.toUpperCase();
                        trace("Original String : "+myString);
                        trace("LowerCase String : "+myStr1);
                        trace("UpperCase String : "+myStr2);
                        运行该脚本,输出窗口中显示:
                        Original String : Macromedia Flash MX
                        LowerCase String : macromedia flash mx
                        UpperCase String : MACROMEDIA FLASH MX
                        String对象只有一个属性,即length,它表示字符串的长度,即字符串中包含字符串的个数,如下所示:
                        myString = "Macromedia Flash MX";
                        trace(myString.length);
                        运行该脚本,输出窗口中显示19,即该字符串中共19个字符。
                        在使用String对象的函数和属性时要注意,字母的大写形式和小写形式是有区别的,并且每个空格也作为一个字符。
                        9.3 练习:表单
                        表单(form)在网页中使用得非常频繁,用户可以通过表单与服务器进行交互,从而实现注册或登录等操作。
                        借助于输入文本、按钮以及ActionScript等,也可以用Flash来制作网页中的表单。
                        第1个输入文本框采用单行格式,第2个输入文本框采用密码格式,第3个输入文本框采用多行格式,并设置了30像素的缩进。3个输入文本变量名分别为name、paword和words,使用ActionScript分别控制3个文本框中的最大字符数。当单击按钮Clear时,清除3个文本框中的内容,当单击按钮Submit时,提交所填的内容。因为这里还没学到Flash与服务器的交互,所以将用户所填内容通过输出窗口显示出来。

                        打开文件form.fla,分别查看一下3个输入文本框的属性面板中的设置。
                        在主场景中新建一层Actions,打开其动作面板,其中添加了如下ActionScript:
                        Key.addListener(_root);
                        _root.onKeyUp = function() {
                        if (_root.name.length>8) {
                        _root.name = _root.name.substr(0, 8);
                        }
                        if (_root.paword.length>16) {
                        _root.paword = _root.paword.substr(0, 16);
                        }
                        if (_root.words.length>150) {
                        _root.words = _root.words.substr(0, 150);
                        }
                        };
                        以上脚本控制3个文本框中的最大字符数,当在文本框中输入的字符数超过了限制,则使用substr函数从输入的字符串中截取指定长度的字符串。

                        选中按钮Clear,打开其动作面板,其中添加了如下ActionScript:
                        on (release) {
                        _root.name = "";
                        _root.paword = "";
                        _root.words = "";
                        }
                        选中按钮Submit,打开其动作面板,其中添加了如下ActionScript:
                        on (release) {
                        trace("Welcome "+_root.name+" !");
                        trace("Your password is "+_root.paword+" .");

 

 

讨论区
我要评论
匿名
Copyright 2006-2008 zrm.cn21edu.com , All Rights Reserved
中华人民共和国电信经营许可证 京ICP证060563
教师自助餐网-汝明工作室版权所有
中国现代教育网提供技术支持 违法和不良信息举报中心
联系地址:广饶县稻庄镇实验中学,联系电话:13371518500