您好,欢迎访问三七文档
第15章文本文本是显示编程的基础,使用文本,才能够把信息通过舞台显示,才能实现信息的设置和获取。在ActionScript3.0中,文本一般使用文本字段来显示,有时也会利用系统提供的UI组件显示。本章将主要介绍如何定义文本字段及内容,如何设置和获取输入文本,如何获取远程文件的动态文本或者是在AdobeFlashCS3Professional中定义的静态文本。在ActionScript3.0中,可以指定文本字段的具体文本内容,可以使用样式和格式进行文本格式化操作,此外还可以相应用户的输入事件和超链接的鼠标响应事件。1.文本处理基础在ActionScript3.0中,TextField类是文本处理的基础,其它的类都与此类相关。通常使用TextFiled构造函数创建文本对象的实例,然后使用该类的属性和方法来控制显示内容,调节显示样式。要显示的文本字段内容,可以是实现在编程中事先设置的;可以是从外部的文本文件或者数据库中加载的;可以使用输入文本进行交换输入;还可以呈现HTML格式文本,并在其中嵌入图像。文本的样式可以使用flash.text包中的类来控制调节,也可以利用外部的css样式表来控制显示文本的显示格式。在本章的文本处理中,主要介绍现下面这些功能的实现方法。修改文本字段内容。在文本字段中使用HTML。在文本字段中使用图像。选择文本并处理用户选择的文本。捕获文本输入。限制文本输入。对文本应用格式设置和CSS样式。使用清晰度、粗细和消除锯齿功能来微调文本显示。在ActionScript3.0中访问和处理静态文本字段。2.显示文本显示文本,主要是针对Flash中文本的三种不同类型的文本进行显示。Flash中三种文本类型分别为:静态文本、动态文本和输入文本。1)文本类型在ActionScript3.0中,支持的文本类型有三种,静态文本是一些不会改变的文字。此种文本类型只能通过Flash创作工具来创建,而不能使用ActionScript3.0创建静态文本实例。此类型文本广泛用于Flash创作,用于在Flash种显示不变的文本。这些文字在发布为SWF格式文件后,显示出来的文字不再改变,不能够再更改。要更改,必须通过修改源文件来实现。在ActionScript3.0中,虽然无法创建静态文本,但是可以利用ActionScript3.0的StaticText类和TextSnapshot类来访问和操作静态文本实例。动态文本是文本内容可以利用ActionScript3.0脚本动态改变的文本类型。此种文本类型使用TextFiled类来管理,需要创建该类的实例。动态文本的内容可以使用脚本语言利用TextFled类的text属性来实现设定;也可以外部源(例如文本文件、XML文件以及远程Web服务)加载的内容;还可以接受HTML格式的文本。动态文本可以通过TextField类的实例来访问。输入文本和动态文本类型相似,都是可以动态的改变文字内容,唯一的区别是输入文本类型可以让使用者输入内容。输入文本可以利用样式表来设置输入文本的格式,也使用TextFormat类为输入内容指定文本字段的属性。输入文本也可以通过TextField类的实例来访问。2)显示动态文本在ActionScript3.0中,要使用显示文本,需要导入flash.text包中的内容。该包包括用于处理文本字段、文本格式、文本度量、样式表和布局的类。基本的文本处理只需导入flash.text.TextField类包即可。TextField类用于创建显示对象以显示和输入文本。SWF文件中的所有动态文本字段和输入文本字段都是TextField类的实例。创建TextField类的示例,要使用new关键字来实现。其用法格式如下所示。var文本对象名称:TextField=newTextField()这样,文本对象的实例就被创建成功。使用ActionScript3.0脚本语言创建的TextField类的实例,默认的文本类型是动态文本。创建好TextFiled类的实例,需要使用TextField类的text属性来设置要显示在文本内的内容。其用法格式如下所示。文本对象名称.text=文本内容:String3)显示输入文本输入文本的实现同样需要先创建TextField类的实例,但是由于其默认的是动态文本类型,所以需要使用TextFiled类的type属性把动态文本类型改变为输入文本类型。改变后的输入文本的默认值为空,当然也可以使用TextField类的text属性来默认输入文本的初始值。其基本的用法格式如下所示。var文本对象名称:TextField=newTextField()文本对象名称.type=TextFieldType.input文本对象名称.text=文本内容:String4)显示HTML文本在ActionScript3.0中,动态文本TextFeld类的示例,不仅可以接受纯文本格式的文本字段,也可以接受HTML格式的文本。显示HTML文本,要使用TextField类的htmlText属性来实现。在ActionScript3.0中接受HTML文本,借助HTML强大的文本显示性能,大大扩展了Flash的动态文本显示功能。其用法格式如下所示。var文本对象名称:TextField=newTextField()文本对象名称.htmlText=html格式文本:String5)获取静态文本内容在ActionScript3.0中,有一个flash.text.StaticText类,用于专门管理静态文本。要获取静态文本,需要遍历舞台上的显示对象,若显示对象类型为静态文本,就可以使用StaticText方法把静态文本转换为静态文本变量,进而可以在编程的过程中使用。下面的示例先在AdobeFlashCS3Professional中创建一个静态文本,然后使用文档类来获取静态文本的内容。具体操作步骤如下所示。(1)选择【工具】|【文本工具】,在舞台上创建一个静态文本。(2)输入文本的内容:“这是一个静态文本。”(3)在【属性】面板【文本类型】中,选择【静态文本】。(4)创建文档类:DstaticSample,3.文本操作文本操作,主要涉及下面的一些内容:文本的基本样式设计,文本的是否可选,获取选择的文本,过滤输入文本以及监听文本输入等等。1)文本对象基本设置使用TextField类创建的文本对象,可以利用TextField类的属性对基本样式进行设置。常用的样式如表所示。文本基本格式属性属性参数类型说明autoSizeString控制文本字段的自动大小调整和对齐。backgroundBoolean指定文本字段是否具有背景填充。backgroundColoruint文本字段背景的颜色。borderBoolean指定文本字段是否具有边框。borderColoruint文本字段边框的颜色。textColoruint文本字段中文本的颜色(采用十六进制格式)。textHeightNumber只读属性,文本的高度,以像素为单位。textWidthNumber只读属性,文本的宽度,以像素为单位。2)设置文本的可选择性设置文本的可选性,就是设置动态文本是否可选。使用TextField类创建的文本对象,默认是可选的。但是这样在使用的过程中会造成一些不必要的麻烦,因而如果仅仅是使用动态文本显示数据,那么最好设置其为不可选。要设置文本的可选性,需要使用TextField类的selectable属性来控制。此外,还可以使用TextField类的setSelection()方法,来选取文本对象中的某一部分内容。此属性和方法的用法格式如下所示。文本对象.selectable=Boolean值文本对象.setSelection(开始索引,结束索引)3)捕获选择的文本要捕获选择的文本,可以使用TextField类的selectionBeginIndex属性和selectionEndIndex属性来获取选择的文本的开始索引和结束索引,进而可以获得所选文本的内容。selectionBeginIndex属性表示被选择文本的第一个字符的位置索引,selectionEndIndex属性表示被选择的文本的最后一个字符的位置索引。利用首尾两个位置索引,借助String类的相关方法,可以获取被选择的文本的内容。下面的示例先使用文本对象的setSelection方法选取一段文本,然后使用文本对象的selectionBeginIndex属性和selectionEndIndex属性,获取选择文本的索引。4)过滤输入文本过滤输入文本,也就是限制输入文本的内容,指定输入文本框中,有些字符可以输入,有些字符不能输入。要实现过滤输入文本,需要使用TextField类的restrict属性来控制。restrict属性的默认值为null,表示可以输入任何字符。如果restrict属性的值为空字符串,则表示不能输入任何字符。如果restrict属性的值为一字符串,则只能在文本字段中输入该字符串中的字符。限制的规律时从左向右扫描该字符串,若在此字符串中存在,可以输入,否则不能输入。如果有连续的字符串,则可以使用连字符(-)指定一个范围。下面的示例使用文本对象的restrict属性,限制字符的输入范围为只能输入大写字符、空格和数字:文本对象.restrict=A-Z0-9;5)使用密码输入使用密码输入,实际就是设置输入文本框内的输入文本不直接显示,而是使用*来替代输入文本。要实现密码输入,需要使用TextField类的displayAsPassword属性来实现。若设置此属性的值为true,则文本字段被视为密码文本字段,并使用星号而不是实际字符来隐藏输入的字符。若设置为false,则不会将文本字段视为密码文本字段,而是作为普通的输入文本来处理。6)监听文本输入要监听文本输入,只需侦听TextEvent类的TEXT_INPUT事件即可。下面的示例实现在输入文本框中输入文本,然后通过侦听TextEvent事件类的TEXT_INPUT事件,获取输入文本的内容,然后在动态文本框中同步显示输入文本的内容。4.对文本进行格式化文本格式化,也就是通过编程设计,设置文本对象的显示格式。要实现文本格式化,在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。2)TextFormat格式化属性介绍TextFormat格式化方法使用TextFormat类来实现。使用TextFormat类可以为文本字段创建特定的文本格式。此类设置的文本格式不仅可以作用于动态文本字段,也可以作用于静态文本字段。TextFormat类的属性可以设置使用设备字体和嵌入字体。但是,嵌入字体、粗体或斜体文本需要特定字体才能实现。也就是说,如果要使用嵌入字体来显示粗体或斜体文本,则需要嵌入该字体的粗体和斜体变体。要创建TextFormat文本格式,先需要使用newTextFormat()方法创建TextFormat对象,才能设置该构造函数的属性。3)格式化输入文本格式化输入文本,就是设置输入文本的默认格式,在文本输入的时候,同时使用默认的格式。要实现此方法,只需把TextFormat对象应用于文本对象的defaultText
本文标题:第15章文本
链接地址:https://www.777doc.com/doc-2243527 .html