Flash Player 10中提供的新功能之一:强大的文本排版能力无疑是Flash Player 10中最复杂的功能之一,连Adobe自己都觉得太复杂了,以至于推出一个TextLayout Framework来协助开发 者进行开发。
小生我也是正在入门中,先撇开TextLayout Framework不说,从最底层探索吧,一起在这里分享下我的学习笔记。
第一节:牛逼无比,万物之主的TextBlock( flash .text.engine.TextBlock)
何为TextBlock?顾名思义我们可以称之为文本块,例如我们的一段文字就是视为放在一个文本块里,文本块只是负责保存文本的内容和格式,仅当需要输出时才会确定输出文本的长度和面积。废话不说,看代码 :
var txt:String = "这是一段非常长非常长的文本,即便实际上看上去并不长!";
//定义元素的字体以及格式
var format:ElementFormat = new ElementFormat(new FontDescription("Arial"));
//可恶,还是没有单位,要是能像CSS中的定义为12px多优美啊
format.fontSize = 12;
var textEle:TextElement = new TextElement(txt, format);
//新建立一个文本块,并将文本元素变为其内容
var textBlock;TextBlock = new TextBlock();
textBlock.content = textEle;
/**
* 实际上textBlock.createTextLine有两个参数,第一个参数是上一行文本对象
* 第二个参数是输出文本行的宽度,我这里随便写了个50px
*/
var textLine:TextLine = textBlock.createTextLine(null, 50);
//设定文本行的位置
textLine.x = 10;
textLine.y = 10;
addChild(textLine);
//设定第二行文本,为何叫第二行文本,因为在createTextLine的时候指定了上一行是textLine
var textLine2;TextLine = textBlock.createTextLine(textLine, 100);
textLine2.x = 10;
textLine2.y = textLine.y + textLine.height + 10;
addChild(textLine2);
在你的Flash CS4的时间轴上写下上面的代码编译运行看看会有什么效果?别忘记选择一下文本看看效果!
在上面的代码里,还能看到TextLine这个类,此类相当于是一个文本行,一个文本块可以输出多个文本行,而这些文本行的位置可以任你随心所欲的放置在舞台上的任何角落,而他们的顺序也是你来指定的,很爽吧!
那么今天的分享先到这里。
下次分享下强大的GraphicElement, 并且配合今天的分享的知识一起来实现一个更加牛逼的效果!