AS3.0的元素处理(二)-- TextField

转自:windtoto http://windtoto.blog.51cto.com/1986737/406819

文本这一块内容,算不上是Flash的重头戏,但也是不可缺少的一块内容。TextField的属性和方法众多,我们不用全部记住。但我们需要知道能实现哪些功能。

TextField的属性面板如下图:

      clip_image002

 

和面板对应的相关属性有:(继承属性我不列了)

text:文本内容。

htmlText:存储HTML文本的内容。如果要使用HTML文本时,请参阅帮助,了解支持哪些HTML元素,Flash支持的元素不多的。别指望实现太复杂的功能。可能也就<img>标签会比较有用些,可以插入外部的图片和SWF文件。

type:设置文本为动态文本还是输入文本。默认为动态文本。

textColor:设置字体颜色。

autoSize:对齐方式,只有无(默认)、左端对齐、居中对齐、右端对齐。没有两端对齐。

multiline:文本是否为多行文本。

wordWrap:文本是否自动换行。

displayAsPassword:输入的字符以密码形式显示。

border:是否具有边框。

selectable:文本字段是否可选。

maxChars:用户可输入的最大字符数。

 

属性面板不提供的常用设置属性:

background:是否具有背景填充色。

backgroundColor:当background属性设置为true时,设置背景颜色。

borderColor:当border属性为true时,设置边框颜色。

restrict:在输入文本中,限制用户可输入的字符集。

 

常用文本类编程属性:

length:获取文本所含字符数。

numLines:获取多行文本的总行数。

caretIndex:获取输入光标所在的位置(插入字符的那条一闪一闪的竖线)。

selectionBeginIndex:所选择文本的起始位置。

selectionEndIndex:所选择文本的结束位置。

textWidth:获取文本区域实际宽度。

textHeight:获取文本区域实际高度。

scrollH:当前水平滚动位置。设置该值可以实现文本水平滚动效果。

maxScrollH:scrollH的最大值。

scrollV:当前垂直滚动位置。设置该值可以实现文本垂直滚动效果。

maxScrollV:scrollV的最大值

bottomScrollV:返回当前可见文本区域的底部ScrollV值。

 

有关文本定位的相关方法:

(1)根据提供的字符索引值获取:

getCharBoundaries():获得某一个字符的具体位置矩阵(该字符的x、y坐标,以及宽、高)。

getFirstCharInParagraph():获取某一个字符所在段落的第一个字符索引值。

getParagraphLength():获取某一个字符所在段落包含的字符个数。

getLineIndexOfChar():获取某一个字符所在的行号。

(2)根据坐标获取:

getCharIndexAtPoint():根据点坐标,获得当前位置的字符索引值。

getLineIndexAtPoint():根据点坐标,获取当前行号。

 

和文本行相关的方法:

getLineLength():获取某一行的字符个数。

getLineOffset():获取某一行第一个字符的索引号。

getLineText():获取某一行的文本内容。

 

AS3.0 TLFTextField 最新的组件库 以往的有BUG,这个可是最新的哦 package { import fl.controls.UIScrollBar; import fl.text.TLFTextField; import flash.events.Event; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.edit.IEditManager; import flashx.textLayout.elements.FlowElement; import flashx.textLayout.elements.InlineGraphicElement; import flashx.textLayout.elements.ParagraphElement; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.events.CompositionCompleteEvent; import flashx.textLayout.events.StatusChangeEvent; /** * 使用 TLFTextField 类创建使用文本布局框架 (TLF) 的高级文本显示功能的文本字段。 * TLFTextField 对象与 TextField 对象类似,但 TLFTextField 对象可以利用 flashx 包中包含的 TLF 类的属性和方法。TLF 提供了大量格式选项和功能。 * @author */ public class STLFTextField extends TLFTextField { //最大段落数 private var _maxParagraph:uint = 0; //UI滚动条 private var uiScrollBar:UIScrollBar; public function STLFTextField() { super(); } private function tlfEventHandle(e:Event):void { super.textFlow.flowComposer.updateAllControllers(); if (uiScrollBar) { uiScrollBar.scrollPosition = uiScrollBar.maxScrollPosition; uiScrollBar.validateNow(); } } /** * 过滤段落数达到最大值时文本的段落 */ private function filtrationPar():void { if (_maxParagraph == 0) return; if (textFlow.numChildren > _maxParagraph) { for (var i:uint = 0; i < textFlow.numChildren - _maxParagraph; i++ ) { textFlow.removeChildAt(0); } } } /** * 在文本中插入图片 * @param src 图片的路径或者库里面的MC实例 * @param width 图片的宽,默认是图片宽度 * @param height 图片的高,默认是图片的高度 */ public function insertImg(src:Object, width:Object = "auto", height:Object = "auto"):void { if(!textFlow.hasEventListener(StatusChangeEvent.INLINE_GRAPHIC_STATUS_CHANGE)) super.textFlow.addEventListener(StatusChangeEvent.INLINE_GRAPHIC_STATUS_CHANGE, tlfEventHandle); if(super.textFlow.interactionManager is IEditManager) { IEditManager(super.textFlow.interactionManager).insertInlineGraphic(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值