`

AS3.0编程的100个小技巧(5)文本框和HTML

 
阅读更多
【自动大小调整和对齐】

TextField.autoSize = TextFieldAutoSize.LEFT;

可选之值:

flash.text.TextFieldAutoSize.CENTER

flash.text.TextFieldAutoSize.LEFT

flash.text.TextFieldAutoSize.NONE

flash.text.TextFieldAutoSize.RIGHT

 
【指示文本字段是否自动换行】

TextField.wordWrap = true; //自动换行

 
【用程序手段滚动文字】

水平方向以像素为单位,而垂直方向以行做单位:

scrollV: 指出文字框可见区域的最顶行,可读写;

bottomScrollV: 指出文字框内最底端可见行,只读;

maxScrollV: scrollV的最大值,只读;

numLines: 定义多行文本字段中的文本行数,只读;

TextField.scrollV = field.maxScrollV; //滚动到最后一页

 
【响应滚动事件】

field.addEventListener(Event.SCROLL, onTextScroll);

 
【样式化文字的方法】

1. 使用HTML标签进行样式化;

2. 使用TextFormat对象;

3. 使用CSS.

例如: HTML是用<font>标签,TextFormat对象是设定font属性,而CSS是使用font-family属性的.

受支持的层叠样式表(CSS)属性和值,及其相应的ActionScript属性名称(小括号内):

color(color),display(display),font-family(fontFamily),font-size(fontSize),font-style(fontStyle),font-weight(fontWeight),kerning(kerning),leading(leading),letter-spacing(letterSpacing),margin-left(marginLeft),margin-right(marginRight),text-align(textAlign),text-decoration(textDecoration),text-indent(textIndent)

受支持的HTML实体: <(小于号: &lt;), >(大于号: &gt;), &(和: &amp;), "(双引号: &quot;), '(撇号,单引号: &apos;)

其中样式对象的两种写法:

写法一:

var sampleStyle:Object = new Object();

sampleStyle.color = "#FFFFFF";

sampleStyle.textAlign = "center";

css.setStyle(".sample", sampleStyle);

写法二:

var sampleStyle:Object = {color: "#FFFFFF", textAlign: "center"};

css.setStyle(".sample", sampleStyle);

 
【对用户输入的文字进行样式化】

使用defaultTextFormat属性,样式会施加至用户键入输入框的文字身上:

var formatter:TextFormat = new TextFormat();

formatter.color = 0x0000FF; //把文字变成蓝色

field.defaultTextFormat = formatter;

 
【对现有文字的一部分进行样式化】

TextFormat.setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void

 
【设定文字框的字体】

例子:

HTML: field.htmlText = "<font face='Arial'>Formatted text</font>";

TextFormat: formatter.font = "Arial";

CSS: P{ font-family: Arial; }

也可以使用以逗号隔开的字体清单: formatter.font = "Arial, Verdana, Helvetica";

注意:

字体和字体群组不同.字体群组有三种: _sans,_serif以及_typewriter.

_sans群组一般就是指Arial或Helvetica这种字体;

_serif群组一般就是指Times或Times New Roman这种字体;

_typewriter群组一般就是指Courier或Courier New这种字体.

 
【嵌入字体】

使用[Embed]后设标签.[Embed]后设标签应该出现在ActionScript文件中,处于类宣告之外.你可以内嵌TrueType字体或系统字体.内嵌TrueType字体时的语法:

[Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font-truetype")]

pathToTtfFile: ttf文件的路径,TrueType字体的路径可以是相对的,也可以是绝对的;

FontName: 字体名称;

内嵌系统字体的语法:

[Embed(systemFont="Times New Roman", fontName="Times New Roman", mimeType="application/x-font-truetype")]

fontName: 以相同名称作为实际系统字体名称.

注意: 在使用嵌入字体时,要把TextField的embedFonts属性设为true,这样TextField只能用内嵌字体了.如果你试着替embedFonts设为true的TextField使用设备字体,什么都不会显示.如果embedFonts设为true,就无法指定以逗号相隔的字体清单.

 
【建立可以旋转的文字】

使用内嵌字体.当你旋转文字框时,设备字体就会消失.

 
【显示Unicode文字】

1. 从外部来源载入Unicode文字;

2. 假如你的编辑器支持Unicode(如 Flex Builder),则可以直接在ActionScript程序中使用该字符;

3. 使用Unicode转义字符,ActionScript里所有Unicode转义字符都以\u开头,后面再跟四位十六进制数字.

注意: 如果你想取得Unicode字符,在Windows下使用: 开始>所有程序>附件>系统工具>字符映射表.

 
【把Flash Player的焦点带给文字框】

stage.focus = field;

把焦点移除:

stage.focus = null;

注意: 当.swf文件首次载入至网页浏览器时,并没有焦点.因此,以程序的方式把焦点指定给Flash应用程序的一个元素前,必须先把焦点移至Flash Player.

 
【以ActionScript选取文字】

使用TextField.setSelection(beginIndex:int, endIndex:int):void

为了可以正常选取文字,文字框必须具有焦点:

stage.focus = field; //把焦点设给文字框

field.text = "This is example text"; //设定文字

field.setSelection(0, 4); //把"This"这个单词以高亮显示

使用只读的selectionBeginIndex和selectionEndIndex属性访问所选取的字符范围的索引.

 
【在文字内设定安插点(游标位置)并访问游标位置的索引值】

可以使用TextField.setSelection()把起始和结尾的索引参数都设成相同值,在文字内设定游标位置(假设具有焦点):

field.setSelection(0, 0); //在第一个字符前摆放安插点

trace(field.caretIndex); //输出游标位置的索引值

 
【当文本字段受到选取或取消选取时给予响应】

获得焦点时: FocusEvent.FOCUS_IN

失去焦点时: FocusEvent.FOCUS_OUT

通过键盘(Tab键)把焦点移除时: FocusEvent.KEY_FOCUS_CHANGE

通过鼠标把焦点移除时: FocusEvent.MOUSE_FOCUS_CHANGE

FocusEvent类有一个relatedObject属性.就FOCUS_IN事件而言,relatedObject属性是刚才拥有焦点的对象的引用地址;对于FOCUS_OUT,KEY_FOCUS_CHANGE以及MOUSE_FOCUS_CHANGE事件,relatedObject属性是刚接收到焦点的对象的引用地址.

FOCUS_IN和FOCUS_OUT事件都是在焦点改变后发生的,所以两者都是不可取消的事件.对于KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事件,可以使用FocusEvent.preventDefault()方法取消默认行为:

field.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, onKeyFocus);

private function onKeyFocus(event:FocusEvent):void {

    if(field.text == "") {

        event.preventDefault(); //当field没有任何文字前,不允许使用Tab键把焦点移除

    }

    //event.relatedObject就是刚才拥有焦点的对象的引用地址,即下一个获得焦点的对象的引用地址

}

 
【响应用户的输入行为】

field.addEventListener(TextEvent.TEXT_INPUT, onTextInput);

private function onTextInput(event:TextEvent):void {

    if(event.text == "a" && field.length == 0) {

        event.preventDefault(); //TEXT_INPUT是可以取消的事件.TextEvent有一个text属性,内含用户所输入的的字符.此例子确保用户输入的第一个字母不是"a"

    }

}

 
【把超链接加入文字】

打开网页:

例子1:

var css:StyleSheet = new StyleSheet();

css.parseCSS("a{color:#0000FF;} a:hover{text-decoration:underline;}");

field.styleSheet = css;

field.htmlText = "<a href='http://www.riahome.cn' target='_blank'>Link text</a>";

例子2:

field.text = "Link text";

var formatter:TextFormat = new TextFormat();

formatter.url = "http://www.riahome.cn";

formatter.target = "_blank";

field.setTextFormat(formatter);

打开Email:

field.text = "Link text";

var formatter:TextFormat = new TextFormat();

formatter.url = "mailto:y_boy@126.com";

field.setTextFormat(formatter);

使用event协议,打开ActionScript方法:

field.htmlText = "<a href='event:http://www.riahome.cn'>www.RIAHome.cn</a>";

field.addEventListener(TextEvent.LINK, onClickHyperlink);

private function onClickHyperlink(event:TextEvent):void {

    trace(event.text); //输出: http://www.riahome.cn

}

 
【精确获取某字符的索引值】

在 x 和 y 参数指定的位置返回从零开始的字符索引值

TextField.getCharIndexAtPoint(x:Number, y:Number):int

例子:

field.getCharIndexAtPoint(mouseX, mouseY); //返回鼠标位置上的该字符的索引值

 
【精确获取某字符的边框区域】

TextField.getCharBoundaries(charIndex:int):Rectangle

通过读取Rectangle的x,y,width以及height等属性来确定该字符的边框区域范围.

 
【精确获取某行的索引值】

在 x 和 y 参数指定的位置返回从零开始的行索引值

TextField.getLineIndexAtPoint(x:Number, y:Number):int

field.getLineIndexAtPoint(mouseX, mouseY); //返回鼠标位置上的该行的索引值

 
【获取指定索引值处的字符所在行的行索引值】

TextField.getLineIndexOfChar(charIndex:int):int

 
【获取指定行的字符数】

TextField.getLineLength(lineIndex:int):int

 
【获取指定索引值处的行所包含的字符】

TextField.getLineText(lineIndex:int):String

 
【获取指定行索引所在行的第一个字符的索引值】

TextField.getLineOffset(lineIndex:int):int

 
【获取指定文本行的度量信息】

TextField.getLineMetrics(lineIndex:int):TextLineMetrics

TextLineMetrics类包含文本字段中某行文本的文本位置和度量值的相关信息,帮助文档里有深入的图解.

 
【获取指定索引处的字符所在段落内的第一个字符索引值】

如果给定一个字符索引,则返回同一段落中第一个字符的索引

TextField.getFirstCharInParagraph(charIndex:int):int

 
【获取指定索引处的字符所在段落内的字符数】

TextField.getParagraphLength(charIndex:int):int

 
【替换所选文字】

TextField.replaceSelectedText(value:String):void

可以使用此方法插入和删除文本而不破坏其余文本的字符和段落格式.

 
【替换指定范围的文本】

TextField.replaceText(beginIndex:int, endIndex:int, newText:String):void

注意: 如果对文本字段应用了样式表,则该方法不起作用

分享到:
评论

相关推荐

    Flash9下as3.0编程的aswing包

    总之,ASwing是AS3.0编程的一个强大工具,它简化了在Flash9中创建复杂用户界面的过程,使开发者能更专注于业务逻辑和交互设计,而不是底层的图形绘制和布局管理。通过深入研究和使用ASwing,不仅可以提升开发效率,...

    flash 3.0汉诺塔:小游戏

    本教程将围绕如何使用Flash CS(可能是CS4或CS5)和AS 3.0编程实现汉诺塔小游戏进行详细讲解。 1. **ActionScript 3.0基础**: AS 3.0是Flash Professional中的主要编程语言,与之前的版本相比,它更加强大且高效...

    使用 ACTIONSCRIPT 3.0组件 (AS3组件帮助文档)

    ### 使用 ACTIONSCRIPT 3.0 组件(AS3 组件帮助文档) #### 第 1 章:简介 **目标读者** 本章节旨在为那些熟悉 Flash 应用程序开发及 ActionScript 编程的开发人员提供指导。这些开发人员希望通过使用组件来提高...

    cs3_flash脚本编程 “道路行进指示”

    在本文中,我们将深入探讨“CS3 Flash 脚本编程——道路行进指示”的相关知识点,这是一项涉及ActionScript 3.0编程语言、Flash ...通过对这个项目的研究,可以加深对ActionScript 3.0编程和Flash动画原理的理解。

    AS3 抽奖系统

    总的来说,AS3抽奖系统是一个集成了多种AS3特性和编程技巧的项目,对于学习ActionScript 3.0和互动应用开发的开发者来说,是一个很好的实践案例。通过研究这个系统,可以深入理解AS3的事件处理、图形渲染、数据操作...

    flash游戏开发作业 第三次作业.zip

    【标题】:“Flash游戏开发作业 第三次作业.zip” 在标题中,“Flash游戏开发作业”意味着本次的主题聚焦于...通过这个作业,开发者将全面掌握Flash游戏开发的关键技术和流程,同时提升他们的编程技巧和创意设计能力。

    超绚丽flash广告条

    总结来说,创建"超绚丽flash广告条"涉及Flash CS3的图形设计、AS3编程、组件应用、优化技巧等多个方面。通过学习和实践这些技能,开发者可以制作出既有视觉吸引力又具有良好用户体验的网络广告条。

    flex源码大合集1

    Flex源码大合集1是一个宝贵的资源,专为学习Flex框架和ActionScript 3.0(AS3)的开发者设计。这个合集包含了多个Flex应用的源代码示例,可以帮助初学者深入理解Flex的架构、组件和编程模式,同时也能为有经验的...

    Flex 2 Developer’s Guide

    ActionScript 3.0是Flex 2的基础,它提供了更加强大的面向对象编程能力,包括类、包、接口和事件处理。AS3的性能显著提升,且支持类型系统和命名空间,使代码更加规范和高效。 四、Flex SDK Flex SDK是开发Flex应用...

    Flash实用源代码与实例详解

    书中的实例将引导你学习AS3的基本语法,包括变量、函数、类和对象的概念,以及事件处理和面向对象编程的应用。 三、动画与交互设计 Flash的动画制作能力强大,你可以通过关键帧和补间动画创建平滑的过渡效果。书中...

Global site tag (gtag.js) - Google Analytics