四十一、显示文本
Flash中三种文本类型分别为:静态文本、动态文本和输入文本。
1、显示动态文本
在ActionScript3.0中,要使用显示文本,需要导入flash.text包中的内容。该包包括用于处理文本字段、文本格式、文本度量、样式表 和布局的类。基本的文本处理只需导入flash.text.TextField类包即可。TextField类用于创建显示对象以显示和输入文本。SWF 文件中的所有动态文本字段和输入文本字段都是TextField类的实例。
创建TextField类的示例,要使用new关键字来实现。其用法格式如下:
var 文本对象名称:TextField=new TextField()
使用ActionScript 3.0脚本语言创建的TextField类的实例,默认的文本类型是动态文本。创建好TextFiled类的实例,需要使用TextField类的text属性来设置要显示在文本内的内容。其用法格式如下所示:
文本对象名称.text=文本内容:String
2、显示输入文本
输入文本的实现同样需要先创建TextField类的实例,但是由于其默认的是动态文本类型,所以需要使用TextFiled类的type属性把动态文本 类型改变为输入文本类型。改变后的输入文本的默认值为空,当然也可以使用TextField类的text属性来默认输入文本的初始值。其基本的用法格式如 下所示。
·var 文本对象名称:TextField=new TextField()
文本对象名称.type=TextFieldType.input
文本对象名称.text=文本内容:String
说明:TextFieldType常数指定文本类型,有两种,分别为:TextFieldType。DYNAMIC,指定用户无法编辑的动态文本字段,即动态文本;TextFieldType。INPUT,指定用户可以编辑的输入文本字段,即输入文本。
3、显示HTML文本
在ActionScript 3.0中,动态文本TextFeld类的示例,不仅可以接受纯文本格式的文本字段,也可以接受HTML格式的文本。显示HTML文本,要使用TextField类的htmlText属性来实现。在ActionScript 3.0中接受HTML文本,借助HTML强大的文本显示性能,大大扩展了Flash的动态文本显示功能。其用法格式如下所示。
·var 文本对象名称:TextField=new TextField()
文本对象名称.htmlText=html格式文本:String
4、获取静态文本
在ActionScript 3.0中,有一个flash.text.StaticText类,用于专门管理静态文本。要获取静态文本,需要遍历舞台上的显示对象,若显示对象类型为静态文本,就可以使用StaticText方法把静态文本转换为静态文本变量,进而可以在编程的过程中使用。
四十二、文本操作
1、文本基本格式属性
属性 |
参数类型 |
说 |
autoSize |
String |
控制文本字段的自动大小调整对齐 |
background |
Boolean |
指定文本字段是否具有背景填充 |
backgroundColor |
uint |
文本字段背景的颜色 |
border |
Boolean |
指定文本字段是否具有边框 |
borderColor |
uint |
文本字段边框颜色 |
textColor |
uint |
文本字段中文本的颜色(采用16进制格式) |
textHeigth |
Number |
只读属性,文本的高度,以像素为单位 |
textWidth |
Number |
只读属性,文本的宽度,以像素为单位 |
2、设置文本的可选性
设置文本的可选性,就是设置动态文本是否可选。使用TextField类创建的文本对象,默认是可选的。但是这样在使用的过程中会造成一些不必要的麻烦, 因而如果仅仅是使用动态文本显示数据,那么最好设置其为不可选。要设置文本的可选性,需要使用TextField类的selectable属性来控制。此 外,还可以使用TextField类的setSelection()方法,来选取文本对象中的某一部分内容。此属性和方法的用法格式如下所示。
·文本对象.selectable=Boolean值
文本对象.setSelection(开始索引,结束索引)
参数说明:
selectable的参数为Boolean值变量,true表示可选,false表示不可选
setSelection的参数开始索引和结束索引,在索引之间的字符将被默认处于选择中。
3、捕获选择的文本
要捕获选择的文本,可以使用TextField类的selectionBeginIndex属性和selectionEndIndex属性来获取选择的文 本的开始索引和结束索引,进而可以获得所选文本的内容。selectionBeginIndex属性表示被选择文本的第一个字符的位置索 引,selectionEndIndex属性表示被选择的文本的最后一个字符的位置索引。利用首尾两个位置索引,借助String类的相关方法,可以获取 被选择的文本的内容。
4、过滤输入文本
过滤输入文本,也就是限制输入文本的内容,指定输入文本框中,有些字符可以输入,有些字符不能输入。要实现过滤输入文本,需要使用TextField类的restrict属性来控制。
restrict属性的默认值为null,表示可以输入任何字符。如果restrict属性的值为空字符串,则表示不能输入任何字符。如果 restrict属性的值为一字符串,则只能在文本字段中输入该字符串中的字符。限制的规律时从左向右扫描该字符串,若在此字符串中存在,可以输入,否则 不能输入。如果有连续的字符串,则可以使用连字符(-)指定一个范围。
例:下面的示例使用文本对象的restrict属性,限制字符的输入范围为只能输入大写字符、空格和数字:
文本对象.restrict="A-Z 0-9";
5、使用密码输入
使用密码输入,实际就是设置输入文本框内的输入文本不直接显示,而是使用*来替代输入文本。要实现密码输入,需要使用TextField类的 displayAsPassword属性来实现。若设置此属性的值为true,则文本字段被视为密码文本字段,并使用星号而不是实际字符来隐藏输入的字 符。若设置为false,则不会将文本字段视为密码文本字段,而是作为普通的输入文本来处理。
6、监听文本输入
要监听文本输入,只需侦听TextEvent类的TEXT_INPUT事件即可。
四十三、对文本进行格式化
ActionScript3.0中有三种方式可供选择,分别为:使用HTML标签、使用TextField.setTextFormat()方法和使用CSS设置文本框的StyleSheet样式。
1、setTextFormat方法介绍
TextField类的setTextFormat()方法用于使用TextFormat样式来格式化文本(具体的样式属性,请参见15.4.2节的内容)。其用法格式如下所示。
setTextFormat(format,beginIndex,endIndex)
参数说明如下:
format:TextFormat对象,一个包含字符和段落格式设置信息的TextFormat对象。
beginIndex:数字,指定所需文本范围内第一个字符的从零开始的索引位置。默认值为-1。
endIndex:数字,指定所需文本范围内最后一个字符的从零开始的索引位置。默认值为-1。
该方法常见的有3种用法:
文本对象. setTextFormat(textFormat:TextFormat)
说明:将textFormat的属性应用于文本字段中的所有文本。
文本对象. setTextFormat(textFormat:TextFormat,beginIndex:int)
说明:将textFormat的属性应用于从behinIndex(开始索引)处开始的文本。
文本对象. setTextFormat(textFormat:TextFormat,beginIndex:int,endIndex:int)
说明:将textFormat的属性应用于范围从beginIndex(开始索引)处到endIndex(结束索引)处的文本。
在使用过程中,要注意的是用户输入的文本或者使用replaceSelectedText()方法替换的文本都会接受该文本字段的默认格式设置,而不是以 文本插入点处指定的格式设置作为新文本的格式设置。若要为新文本设置文本字段的默认格式,可以使用defaultTextFormat属性实现。
2、TextFormat格式化属性介绍
TextFormat格式化方法使用TextFormat类来实现。使用TextFormat类可以为文本字段创建特定的文本格式。此类设置的文本格式不 仅可以作用于动态文本字段,也可以作用于静态文本字段。TextFormat类的属性可以设置使用设备字体和嵌入字体。但是,嵌入字体、粗体或斜体文本需 要特定字体才能实现。也就是说,如果要使用嵌入字体来显示粗体或斜体文本,则需要嵌入该字体的粗体和斜体变体。
要创建TextFormat文本格式,先需要使用new TextFormat()方法创建TextFormat对象,才能设置该构造函数的属性。
属性:
属性名称 |
参数类型 |
说 |
align |
String |
指示段落的对齐方式 |
blockIndent |
Object |
指示块缩进,以像素为单位 |
bold |
Object |
指定文本是否为粗体 |
bullet |
Object |
指示文本为带项目符号的列表的一部分 |
color |
Object |
指示文本的颜色 |
font |
String |
使用此文本格式的文本的字体名称,以字符串形式表示 |
indent |
Object |
指示从左边距到段落中第1个字符的缩进 |
italic |
Object |
指示使用此文本格式的文本是否为斜体 |
kerning |
Object |
一个布尔值,指示是启用(true)还是(false)字距调整 |
leading |
Object |
一个整数,表示行与行之间的垂直间距(称为前导)量 |
leftMargin |
Object |
段落的左边距,以像素为单位 |
letterSpacing |
Object |
一个整数,表示在所有字符间统一分配的空格量 |
rightMargin |
Object |
段落的右边距,以像素为单位 |
size |
Object |
使用此文本格式的文本的磅值 |
tabStops |
Array |
将自定义Tab停靠位指定为一个非负整数的数组 |
target |
String |
指示显示超链接的目标窗口 |
underline |
Object |
指示使用此文本格式的文本时带下划线(true)还是不带下划线(false) |
url |
String |
指示使用此文本格式的文本的目标URL |
1、格式化输入文本
格式化输入文本,就是设置输入文本的默认格式,在文本输入的时候,同时使用默认的格式。要实现此方法,只需把TextFormat对象应用于文本对象的defaultTextFormat属性上。
2、格式化部分文本
格式化部分文本,也就是对文本的一部分进行格式化。应用格式的文本数量,取决于setTextFormat()方法的两个参数beginIndex起始索引和endIndex结束索引。
3、设置文本的超链接
在ActionScript 3.0中提供了给动态文本添加超链接的功能,要实现此功能,只需使用TextFormat对象的url属性即可。其用法格式如下所示。
·var TF:TextFormat=new TextFormat()
TF.url=URL
文本对象.setTextFormat(TF)
此外,还可以利用TextFormat对象的target属性定义打开的链接窗口的目标窗口。其用法格式如下所示。
TF.target=_target
参数_target表示目标窗口,有4种方式可供选择,分别如下:
_self指定当前窗口中的当前帧
_blank指定一个新窗口
_parent指定当前帧的父级
_top指定当前窗口中的顶级帧
4、使用CSS格式化文本
在ActionScript 3.0中,文本对象不仅可以接受纯文本对象,也可以接受HTML文本对象。HTML文本对象的格式CSS样式表来定义,CSS样式表定义可应用于多种不同 文本字段的文本样式。CSS样式声明可以在应用程序代码中进行创建,也可以在运行时从外部CSS文件中加载。本节主要介绍在ActionScript 3.0脚本中创建并应用CSS文件。
在ActionScript 3.0中,flash.text.StyleSheet类用于处理CSS样式。StyleSheet类可识别有限的CSS属性集合。使用 StyleSheet类可以创建包含字体大小、颜色和其它格式样式的StyleSheet对象。然后,可以将样式表定义的样式应用到包含HTML格式文本 的TextField对象。利用StyleSheet对象定义的标签样式自动设置TextField对象中文本的格式。
四十四、多行文本显示
1、多行显示文本
要使用多行文本,需要设置TextField类的multiline属性和wordWrap属性的值。其用法格式如下所示。
·文本对象. multiline=Boolean值
·文本对象. wordWrap=Boolean值
说明:multiline属性设置文本对象是否支持多行显示文本,默认为false,要使用多行文本,需要将该属性的值设置为true。wordWrap属性设置文本对象是否支持自动换行,默认为false,要使用自动换行,需要该属性的值设置为true。
2、设置段落格式
多行文本的段落格式,同样需要使用TextFormat对象进行格式化,具体的用法格式化单行文本的方法相同。在TextFormat对象对象的属性中,用于设置文本段落格式的属性有以下几种:
indent:指明首行缩进的值。
kerning:指明是否支持字符间距设置。
leading:设置行间距。
leftMargin:设置段落的左边距。
letterSpacing:设置字符间距。
rightMargin:段落的右边距。
3、在文本中显示图形
利用ActionScript 3.0中支持HTML文本,可以在HTML文本加入图像img标签,实现在文本中显示图形的效果。使用<img>标签可将JPEG、GIF、 PNG类型的外部图像文件以及SWF文件和影片剪辑嵌入到文本中。在显示文本对象中,文本在嵌入的图像旁自动换行。若要使用该标签,必须将显示文本设置为 多行和文本换行。
<img>标签支持一下属性:
scr:指定图像或SWF文件的URL,或库中影片剪辑元件的链接标识符。此属性是必需的,所有其他属性都是可选的。外部文件(JPEG、GIF、PNG和SWF文件)只有在完全下载之后才能显示。
width:所插入的图像、SWF文件或影片剪辑的宽度(以像素为单位)。
height:所插入的图像、SWF文件或影片剪辑的高度(以像素为单位)。
align:指定文本字段中嵌入图像的水平对齐方式。方式为left和right.默认值为left.
hspace:指定图像周围不显示任何文本的水平空间量。默认值为8。
vspace:指定图像周围不显示任何文本的垂直空间量。默认值为8。
id:指定包含嵌入的图像文件、SWF文件或影片剪辑实例的称。
checkPolicyFile:指定Flash Player将检查服务器上与图像的域相关的跨域策略文件。
四十五、字符串
1、创建字符串
在ActionScript 3.0中,String类用于表示字符串(文本)数据。ActionScript字符串既支持ASCII字符也支持Unicode字符。
ASCII字符是一种在计算机程序中表示文本字符和符号的系统。ASCII字符系统支持26个字母英文字母表,以及有限的一组其它字符。
Unicode字符也是一种在计算机程序中表示文本字符和符号的系统,不过它是一个标准系统。Unicode系统允许使用任何编写系统中的任何字符。
(1)定义一个普通的字符串
普通的字符串的可以使用字符串文本直接创建。要创建字符串文本,可使用双引号(")或单引号(')字符括起一些字符来创建。注意:在ActionScript 3.0中,使用双引号和单引号创建的字符串没有任何区别。下面定创建的两个字符串是等效的:
•
•
除了使用字符串文本直接创建字符串,还可以使用String类的构造函数,借助new关键字来定义。new关键字来创建字符串,如下代码所示。
•
•
•
使用字符串文本和new关键字创建的字符串是等效的。例如下面创建的两个字符串的效果相同。代码如下所示。
•
•
要注意的是,在使用字符串文本创建字符串时,双引号和单引号不能混用。也就是说,要使用双引号,一直使用双引号;要使用单引号,一直使用单引号。下面示例的两种创建字符串文本的方式是错误的,代码如下所示。
var str1:String="an incorrect string';
var str2:String= 'an other incorrect string";
(2)定义含有转义字符的字符串
在ActionScript 3.0中,使用双引号和单引号将字符“引”起来,表示这是一个字符串。字符串从一个引号开始,到下一个引号结束,也就是引号需要成对出现。但是若在字符串 中间出现引号,就会认为字符串已经结束,后面的部分不再是字符串的一部分,或者组成了新的字符串。这样就和要实现的目的出现了偏差,会造成编译器在编译时 就不能通过。
下面的示例创建的字符串就是错误的,代码如下所示。
var str:String=”这是一个错误的字符串,”不能正确使用”,编译器会报错
2、处理字符串
(1)字符串连接
在ActionScript 3.0中,有三种方式可以实现字符串的连接:使用+连接操作符、使用+=自赋值连接操作符和String.concat()方法。
使用+连接符可以连接字符串
使用+=自赋值连接符可以实现在字符串的尾部追加字符串。
使用String.concat()方法也可以把指定的字符串追加到原字符串的后面,并返回一个新的字符串,原字符串的值并不发生改变
(2)搜索字符串
在ActionScript 3.0中,实现字符串搜索的方法有两种,分别为:String.indexOf()方法和String.lastIndexOf()方法。
(一)、indexOf()方法
indexOf()方法实现从字符串的起始位置开始,正向搜索字符串,返回搜索到字符串的位置索引。其用法格式如下所示:
indexOf(str,startIndex)
说明:从头搜索字符串,返回要搜索的字符串从起始索引之后找到的位置索引,若找不到字符串str,则返回-1。
参数说明:str:需要字符串中搜索的字符串
(二)、lastIndexOf()方法
lastIndexOf()方法实现从字符串的尾部位置开始,逆向搜索字符串,返回搜索到字符串的位置索引。其用法格式如下所示:
lastIndexOf(str,startIndex)
说明:从尾部开始搜索字符串,返回要搜索的字符串从起始索引之后找到的位置索引,若找不到字符串str,则返回-1。
参数说明:
str:需要字符串中搜索的字符串
startIndex:指明开始搜索的起始索引。可选参数,默认值为0X7FFFFFFF,为允许的最大索引值。
3、删除或者替换字符串
在ActionScript 3.0中提供了对字符串进行查找并替换的方法replace()。replace()方法能够实现用一个新的字符串替换原有字符串中指定的字符串,若查找的字符串不存在,则不替换。其用法格式如下所示。
replace(str1,str2)
说明:此方法将返回一个新的字符串,原始字符串仍保持不变,没有修改。
参数说明如下:
str1:要查找的字符串。
str2:用于替换的字符串。
4、截取字符串
在ActionScript 3.0中,提供了三种方法实现在字符串中截取出一部分作为子字符串,分别为:substring()方法、substr()方法和slice()方法。
(1)substring()方法:substring()方法根据指定的起始位置和结束位置,截取两个位置索引中间的一部分字符串作为子字符串。其用法格式如下所示。
substring(startIndex,endIndex)
说明:该方法将返回一个新的字符串,包含由起始索引指定的字符到结束索引减一之间的所有字符,如果未指定结束索引,则使用截取到字符串尾部;如果起始索引 的值等于结束索引的值,则该方法返回一个空字符串;如果起始索引的值大于结束索引的值,则在执行函数之前会自动交换参数,也就是起始索引变为结束索引,结 束索引变为起始索引。
参数说明:
ˇstartIndex:Number:指定用于创建子字符串的第1个字符的索引,也就是开始截取的起始索引。其有效值范围为0到String.length。如果stratIndex是一个负值,则使用0。默认值为0。
ˇendIndex:Number:它比所提取的字符串中的最后一个字符的索引大1。其有效值范围为从0到String.length。endIndex 处的字符不包括在子字符串中。默认为允许的最大索引值。如果省略此参数,则使用String.length;如果此参数是一个负值,则使用0。
(2)substr()方法:substr()方法根据指定的位置和截取的长度值来截取字符串。其用法格式如下所示。
substr(startIndex,len)
(3)slice()方法:此方法与substring()方法类似,也是根据指定的起始位置和结束位置,截取两个位置索引中间的一部分字符串作为子字符串。其用法格式如下所示。
slice(startIndex,endIndex)
5、字符串转数组
使用split()方法实现将字符串分隔成为数组,但要求字符串中必须有统一的分隔符。比如:逗号,~号,§号等等。其用法格式如下所示。
split(str,limit)
此方法将返回一个新的数组。参数说明如下:
str:用来作为分隔符的字符串,可以是标点符号,也可以是空格,也可以是其它的字符。如果没有设置分隔符,则把整个字符串作为数组的一个元素。
limit:要放入数组中的最大项数。默认为允许的最大值。
6、大小写转换
在ActionScript 3.0中,提供了字母大小写转换的方法,分别为:toUpperCase()方法和toLowerCase()方法。
1)toUpperCase()方法实现将字符串中的小写字母转换为大写字母,并返回一个新的字符串。
2)toLowerCase()方法实现将字符串中的大写字母转换为小写字母,并返回一个新的字符串。
四十六、正则表达式
1、正则表达式的构成
正则表达式一般由两个部分组成。一部分是在双斜杠内部的字符串,称为匹配模式,用来表示要匹配的字符串的特征;另一部分是在第二个斜杠的后面,是一个字母,叫做正则表达式的标志位,由五个字母组合而成,具体请参见17.2.5节。
匹配模式由两部分组成,分别为:普通字符(例如字符a到z)和特殊字符(称为元字符)。正则表达式描述在查找字符串时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则表达式的定义方法有两种,一种是使用双斜杠来定义,语法格式:
var 正则表达式:RegExp=/匹配模式/标志位
另一种方法是利用正则表达式类的构造函数来定义一个正则表达式实例。语法格式:
参数说明:
re:字符串,表示正则表达式的匹配模式,有时也称为构造函数字符串。这是正则表达式的主要部分。
flags:字符串表示正则表达式至位的修饰符。此参数为可选参数。
2、正则表达式的语法
(1)正则表达式中的普通字符
正则表达式中的普通字符,包括大小写英文字母,从0到9的数字和除了元字符的其它字符,比如#、!等。注意,中文也属于普通字符,不过它在正则表达式中使用Unicode码表示。由普通字符组成的正则表达式是简单的正则表达式。
(2)正则表达式中的元字符
元字符 |
用法 |
说明 |
ˆ(尖号) |
匹配字符串头部字符 |
匹配字符串的开头 |
﹩(美元符号) |
匹配字符串尾部字符 |
匹配字符串的结尾 |
(反斜杠) |
反斜杠转义字符 |
对特殊字符的含义进行转义 |
.(点) |
匹配单个字符 |
匹配任意单个字符 |
﹡(星号) |
数量表示符 |
匹配前面重复零次或多次的项目 |
﹢(加号) |
数量表示符 |
匹配前面重复一次或多次的项目 |
?(问号) |
数量表示符 |
匹配前面重复零次或一次的项目 |
(和) |
|
在正则表达式中定义组 |
[和] |
|
定义字符类 |
|(竖线) |
逻辑“或”操作符 |
用于逻辑“或”操作,匹配左侧或右侧的部分 |
(3)正则表达式中的元序列
元序列 |
说 |
{n}{n,}和{n,n} |
指定前一项目的数值数量或数量范围,属于数量标识符。 |
匹配单词字符和非单词字符之间的位置。 |
|
B |
匹配两个单词字符之间的位置,也匹配两个非单词字符之间的位置。 |
d |
匹配十进制数字。 |
D |
匹配除数字以外的任何字符。 |
匹配换页符。 |
|
|
匹配换行符。 |
|
匹配回车符。 |
s |
匹配任何空白字符(空格、制表符、换行符或回车符)。 |
S |
匹配除空白字符以外的任何字符。 |
|
匹配制表符。 |
unnnn |
匹配字符代码由十六进制数字 nnnn 指定的 Unicode 字符。 |
匹配垂直换页符。 |
|
w |
匹配单词字符(A-Z、a-z、0-9 或 _)。请注意,w 不匹配非英文字符,如 é、Ò 或 Á。 |
W |
匹配除单词字符以外的任何字符。 |
xnn |
匹配具有指定 ASCII 值(由十六进制数字 nn定义)的字符。 |
(4)正则表达式中的字符类
字符类是指定义的一组字符以匹配正则表达式中的一个位置。
一、一般采用“-”连字符来定义一个连续的范围。常见的范围如下:
[a-z][A-Z][0-9][c-g]
二、如果在字符开头使用尖号(ˆ)字符,则将反转该集合的意义,即未列出的任何字符都认为匹配
(5)正则表达式中的标志位
标志指指定有关应如何使用正则表达式模式的一些选项,如是否区分大写和小写字符等。这些标志对应与正则表达式类的属性。在ActionScript3.0中有5个标志位,如表所示:
标志 |
属性 |
说 |
g |
global |
匹配多个匹配。 |
i |
ignoreCase |
不区分大小写的匹配。应用于 A-Z 和 a-z 字符,但不能应用于扩展字符,如 É 和 é。 |
m |
multiline |
设置此标志后,$ 和 ^ 可以分别匹配行的开头和结尾。 |
s |
dotall |
设置此标志后,.(点)可以匹配换行符 ( )。 |
x |
extended |
允许扩展的正则表达式。 |
3、正则表达式的用法
在ActionScript3.0中,要搜索和检测正则表达式,既可以利用RegExp类的方法来实现,也可以利用String类的方法类来实现。
(1)RegExp类
RegExp类是ActionScript 3.0中的顶级类,它允许使用正则表达式在字符串中执行搜索和替换文本的模式。
7个属性:
属性 |
返回类型 |
说 |
dotall |
Boolean |
指定正则表达式模式中的点字符(.)是否与换行符相匹配。 |
extended |
Boolean |
指定是否为正则表达式使用扩展模式。 |
global |
Boolean |
指定是否为正则表达式使用全局匹配。 |
ignoreCase |
Boolean |
指定正则表达式是否忽略大小写。 |
lastIndex |
Number |
指定字符串中开始进行下一次搜索的索引位置。 |
multiline |
Boolean |
指定是否设置了 m(多行)标志。 |
source |
String |
指定正则表达式的模式部分。 |
2个方法:
一、exec()方法
该方法实现在字符串中执行正则表达式搜索,其用法格式如下所示:
·exec(str:String)
二、test()方法
用于检测提供的目标字符串是否包含正则表达式的匹配内容。如果包含,则返回true,否则返回false。
(2)String类的方法应用
String类与正则表达式的结合,能够实现更为丰富的匹配和搜索效果。在ActionScript 3.0中,String类的search()方法、match()方法和replace()方法常用于正则表达式操作:
search()方法主要用于查找作业,返回搜到的字符串的位置索引;格式:
·search(pattern:*):
match()方法实现的是匹配作业,返回的是匹配的字符串;
·match(pattern:*)
replace()方法实现替换作业,返回的是替换的结果。
·replace(pattern:*,repl:Object)
(3)几种常用的正则表达式
① 正则表达式测试场景
② 匹配中文字符
在验证表单的过程中,很多时候对输入的文本要求都是输入中文。比如验证输入姓名,中国的地名等等。实现中文字符的验证需要用到元序列“unnnn”,其 中“u”表示要匹配字符Unicode代码,后面的四位指16进制的Uincode字符。中文字符对应的Unicode字符范围位4e00到9fa5。 所以要验证中文字字符,需要匹配的正则表达式位[u4e00-u9fa5]。
③ 匹配用户名
在输入表单中,用户名一般要遵循下面的规则:以字母开头,长一般为5到16个字符,其中包含大小写字母、数字和下划线组成。要实现这个规则,正则表达式表示如下所示:
·/ˆ[a-zA-Z][a-Za-z0-9_]{4,15}/
说明:[a-zA-Z]:实现首字母为大小写字母
[a-Za-z0-9_]:实现字符的类型为大小写字母、数字和下划线
{4,15}:实现对字符串内容重复匹配4~15次
④ 匹配货币数字
通常情况下,货币的数字,也就是金额为一数值类型,其包括小数。如10.25元。其正则表达式表示如下所示:
·/^d+(.d+)?$/
说明:^d+
(.d+)?表示中间可以匹配小说点,小数点后可以有数字,此比分可以重复0次或多次。
⑤ 匹配E-mail地址
在数据录入的过程中,通常要要对email地址进行判断。email地址的格式分为两部分:一部分为“@”字符之前的部分,是email地址的帐号,由一些字符组成;“@”后面的一部分为邮件服务器的域名,要包含一个“.”点号。其正则表达式表示如下所示:
·/w+([-+.]w+)*@w+([-.]w+)*.w+([.-]w+)*/
说明:
w+([-+.]w+)*用于验证@前面的部分,信箱的帐号,由单词字符和“-”“+”“.”组成。w+([-.]w+)*.w+([.-]w+)*用于验证@后面的部分,邮件服务器的域名,中间由一个“.”号,在使用中要用转义符进行转义。
⑥ 匹配网址
在表单录入的过程中,通常要要对网站URL地址进行判断。通用的网址格式如:http://www.flasc.cn。当然,有些时候可能简写为www.flasc.cn。本书提供的检测方法用来检测通用的网址,
·/(http://)?[^s]/;
说明:(http://)?用于验证是否存在“http://”,此验证重复零次或一次;
[^s]用来匹配除空白字符串以外的任何字符。
⑦ 匹配IP地址
ip地址很简单,用三个点分开四个数字,如:193.168.0.189。简单检测ip地址的正则表达式如下所示:
·/d+.d+.d+.d+/;
说明:d+表示十进制的数字,可以重复;.用于转义“.”点号。
⑧ 匹配电话号码
在表单输入的时候,有时需要输入电话号码。国内的电话号码有两部分,区号和主机号码,区号和主机号码之间使用“-”连接。其中区号时3位或4位数字,主机号是4位到8位的数字。国内电话号码的正则表达式如下所示:
·/d{3}-d{8}|d{4}-d{7}/;
⑨匹配身份证号码
在表单验证过程中,身份证也是常有的一项输入内容。身份证号码也需要验证,要验证身份证号码,需要知道身份证号码的编码规则。下面的给出最新的18位居民身份证的编码规则:
aa bb
规则说明如下:
aa:表示省份编码。
bb:表示省内地区编码。
cc:表示地级县市编码。
yyyymmdd:表示出生年月日。
nnn:表示同一地区出生年月日相同的人的序号。
r:表示校验码,数组0到10,由于10有两位,所以用X代替。
验证18位身份证号码的正则表达式如下:
·/^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])((d{4})|d{3}[Xx])$/
说明如下:
^[1-9]:中国的身份证号码省编码11~91,所以第1位不能为0。
d{5}:位十进制数字,加上首位,表示省区市编码。
[1-9]:出生年份的第1位,不能为0。
d{3}:3位数字,加上前一个字符,表示出生年份。
((0d)|(1[0-2])):表示月份,可能值为1~12
(([0|1|2]d)|3[0-1]):表示出生日期,可能值为1~31。
((d{4})|d{3}[Xx])$:尾部为4位数字或者3位数字加1~9和Xx。
四十七、位图
1、位图基础
计算机系统中支持的图像主要分为两类:矢量图形和位图图像。
矢量图形由以数学方式生成的几何形状,如直线、曲线和多边形等基本图形组成,在Adobe Flash CS3中创作的图像属于矢量图形。位图图像也称为光栅图像,由排列为矩形网格形式的小方块,也就是像素组成,在Adobe PhotoShop CS3中创作的图像属于位图图像。
位图图像是用图像的宽度和高度来定义,以像素为量度单位。其中像素是指位图图像中的最小信息单位,表示在屏幕中显示的单个不同颜色的点。每个像素由对应的 颜色值来表示。在使用RGB颜色表示的位图图像中,像素由红、绿和蓝三个字节组成,每个字节包含一个0到255之间的数字。将三个字节合并成为一个颜色 值,应用于显示对象,就能够产生与绘画颜色相似的颜色。
2、Bitmap类
Bitmap类用来表示位图图像的显示对象。这些图像可以是使用显示对象的Loader类加载的外部图像,也可以是使用Bitmap()构造函数创建的图 像。Bitmap类创建的图像,其信息可以使用其BitmapData属性来引用并处理。Bitmap对象是一种显示对象,因此可以使用显示对象的属性和 方法来进行操作和控制。此外,Bitmap对象还有两个常用的属性:PixelSnapping象素贴紧和smoothing平滑。
PixelSnapping象素贴紧属性用于控制Bitmap对象是否贴紧至最近的像素。PixelSnapping属性包括以下可能值:
PixelSnapping.NEVER:不进行像素贴紧。
PixelSnapping.ALWAYS:图像始终与最近的像素贴紧,与变形无关。
PixelSnapping.AUTO:如果绘制图像时未应用旋转或倾斜效果,并且图像是以99.9%到100.1%的缩放系数绘制的,则图像将与最近的像素贴紧。
smoothing平滑属性用于控制在缩放时是否对位图进行平滑处理。其值为true,会在缩放时对位图进行平滑处理,值为false,则不会在缩放时对位图进行平滑处理。
3、BitmapData类
BitmapData类用于处理Bitmap对象的像素数据,也可以使用BitmapData类的方法创建任意大小的透明或不透明位图图像,并在运行时采用多种方式操作这些图像。此类还可以访问使用显示对象的Loader类加载的位图图像的BitmapData值。
属性:
属性 |
数据类型 |
说 |
height |
int |
位图图像的高度,以像素为单位。只读属性。 |
rect |
Rectangle |
定义位图图像大小和位置的矩形。只读属性。 |
transparent |
Boolean |
定义位图图像是否支持每个像素具有不同的透明度。只读属性。 |
width |
int |
位图图像的宽度,以像素为单位。 |
方法:
方法 |
说 |
applyFilter |
取得一个源图像和一个滤镜对象,并生成过滤的图像。 |
clone |
返回一个新的 BitmapDate 对象,它是对原始实例的克隆,包含与原始实例所含位图完全相同的副本。 |
colorTransform |
使用 ColorTransform 对象调整位图图像的指定区域中的颜色值。 |
compare |
比较两个BitmapDate 对象。 |
copyChannel |
将数据从另一个BitmapDate对象或当前BitmapDate对象的一个通道传输到当前BitmapDate对象的某个通道中。 |
copyPixels |
为没有拉伸、旋转或色彩效果的图像之间的像素处理提供一个快速例程。 |
dispose |
释放用来存储BitmapDate对象的内存。 |
draw |
使用 Flash Player 矢量渲染器在位图图像上绘制 source 显示对象。 |
fillRect |
使用指定的 ARGB 颜色填充一个矩形像素区域。 |
floodFill |
对图像执行倾倒填充操作,从 (x, y) 坐标开始,填充一种特定的颜色。 |
generateFilterRect |
已知BitmapDate对象、源矩形和滤镜对象,确定 applyFilter() 方法调用所影响的目标矩形。 |
getColorBoundsRect |
确定矩形区域是将位图图像中指定颜色的所有像素完全包括起来(如果将 findColor 参数设置为 true),还是将不包括指定颜色的所有像素完全包括起来(如果将 findColor 参数设置为 false)。 |
getPixel |
返回一个整数,它表示BitmapDate对象中在特定点 (x, y) 处的 RGB 像素值。 |
getPixel32 |
返回一个 ARGB 颜色值,它包含 Alpha 通道数据和 RGB 数据。 |
getPixels |
从像素数据的矩形区域生成一个字节数组。 |
hasOwnProperty |
share
图片原图
loading |