[AS3]as3做高级文本区域的布局源代码实例
TextField 类定义了一系列API用于精确控制文本布局:
getCharIndexAtPoint(x,y) -- 得到坐标(x,y)下的字符
getCharBoundaries(index) -- 得到索引index对应字符的Rectangle
numLines属性 -- 得到TextField的文本行数
getLineIndexAtPoint(x,y) -- 得到坐标(x,y)下对应的行索引
getLineIndexOfChar(index) -- 得到索引index对应字符的行索引
getLineLength(lineIndex) -- 得到索引lineIndex对应行的字符数
getLineText(lineIndex) -- 得到索引lineIndex对应行的文本
getLineOffset(lineIndex) -- 得到索引lineIndex对应行的第一个字符的索引
getLineMetrics(lineIndex) -- 得到索引lineIndex对应行的度量信息,包括x,width,leading,height,descent,ascent相关属性
getFirstCharInParagraph(index) -- 如果给定一个字符索引index,则返回同一段落中第一个字符的索引
getParagraphLength(index) -- 如果给定一个字符索引,则返回包含该字符的段落的长度
- package {
- import flash.display.Sprite;
- import flash.events.MouseEvent;
- import flash.text.TextField;
- import flash.text.TextFieldType;
- public class Sample0421 extends Sprite
- {
- private var label:TextField;
- public function Sample0421()
- {
- var textBox:TextField = new TextField();
- textBox.type = TextFieldType.INPUT;
- textBox.multiline = true;
- textBox.htmlText = "everyone is no1";
- textBox.addEventListener(MouseEvent.CLICK,onClick);
- textBox.background = true;
- textBox.wordWrap = true;
- this.addChild(textBox);
- label = new TextField();
- label.background = true;
- label.x = 150;
- label.width = 250;
- label.height = 300;
- this.addChild(label);
- }
- private function onClick(event:MouseEvent):void
- {
- var txt:TextField = event.target as TextField;
- label.text = "";
- try
- {
- label.appendText("numLines属性值是:"+txt.numLines+"\n");
- label.appendText("getLineIndexAtPoint(x,y)的值是:"+
- txt.getLineIndexAtPoint(mouseX,mouseY)+"\n");
- label.appendText("getLineIndexOfChar(index)的值是:"+
- txt.getLineIndexOfChar(20)+"\n");
- label.appendText("getLineLength(lineIndex)的值是:"+txt.getLineLength(2)+"\n");
- label.appendText("getLineText(lineIndex)的值是:"+txt.getLineText(2)+"\n");
- label.appendText("getLineOffset(lineIndex)的值是:"+txt.getLineOffset(2)+"\n");
- label.appendText("getLineMetrics()的宽度是:"+txt.getLineMetrics(2).width+"\n");
- label.appendText("getFirstCharInParagraph(index)的值是:"+
- txt.getFirstCharInParagraph(5)+"\n");
- label.appendText("getParagraphLength(index)的值是:"+
- txt.getParagraphLength(3)+"\n");
- trace(txt.text.charAt(5));
- }
- catch(ex:Error)
- {
- label.text = ex.message;
- }
- }
- }
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例