·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3做高级文本区域的布局源代码实例

时间:2015-03-13 11:35酷播
[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) -- 如果给定一个字符索引,则返回包含该字符的段落的长度

  1. package { 
  2.  import flash.display.Sprite; 
  3.  import flash.events.MouseEvent; 
  4.  import flash.text.TextField; 
  5.  import flash.text.TextFieldType; 
  6.  public class Sample0421 extends Sprite 
  7.  { 
  8.   private var label:TextField; 
  9.    
  10.   public function Sample0421() 
  11.   { 
  12.    var textBox:TextField = new TextField(); 
  13.    textBox.type = TextFieldType.INPUT; 
  14.    textBox.multiline = true
  15.    textBox.htmlText = "everyone  is  no1"
  16.    textBox.addEventListener(MouseEvent.CLICK,onClick); 
  17.    textBox.background = true
  18.    textBox.wordWrap = true
  19.    this.addChild(textBox); 
  20.     
  21.    label = new TextField(); 
  22.    label.background = true
  23.    label.x = 150
  24.    label.width = 250
  25.    label.height = 300
  26.    this.addChild(label); 
  27.   } 
  28.    
  29.   private function onClick(event:MouseEvent):void 
  30.   { 
  31.    var txt:TextField = event.target  as  TextField; 
  32.    
  33.    label.text = ""
  34.     
  35.    try 
  36.    { 
  37.     label.appendText("numLines属性值是:"+txt.numLines+"\n"); 
  38.      
  39.     label.appendText("getLineIndexAtPoint(x,y)的值是:"+ 
  40.       txt.getLineIndexAtPoint(mouseX,mouseY)+"\n"); 
  41.      
  42.     label.appendText("getLineIndexOfChar(index)的值是:"+ 
  43.       txt.getLineIndexOfChar(20)+"\n"); 
  44.      
  45.     label.appendText("getLineLength(lineIndex)的值是:"+txt.getLineLength(2)+"\n"); 
  46.      
  47.     label.appendText("getLineText(lineIndex)的值是:"+txt.getLineText(2)+"\n"); 
  48.      
  49.     label.appendText("getLineOffset(lineIndex)的值是:"+txt.getLineOffset(2)+"\n"); 
  50.      
  51.     label.appendText("getLineMetrics()的宽度是:"+txt.getLineMetrics(2).width+"\n"); 
  52.      
  53.     label.appendText("getFirstCharInParagraph(index)的值是:"+ 
  54.       txt.getFirstCharInParagraph(5)+"\n"); 
  55.      
  56.     label.appendText("getParagraphLength(index)的值是:"+ 
  57.       txt.getParagraphLength(3)+"\n"); 
  58.      
  59.     trace(txt.text.charAt(5)); 
  60.    } 
  61.    catch(ex:Error) 
  62.    { 
  63.     label.text = ex.message; 
  64.    } 
  65.   } 
  66.  } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器