1.FTE和TLF的关系
http://zengrong.net/post/tag/fte
FTE(Flash Text Engine)
TLF(Text Layout Framework)
FTE 提供对文本度量、格式和双向文本的复杂控制的低级别支持。尽管可以使用 FTE 创建和管理简单的文本元素,但设计 FTE 的主要目的在于为开发人员创建文本处理组件提供基础。TLF是建立在FTE的基础上的。或者说TLF在FTE的基础上实现了“高级功能”。Adobe认为FTE并不适合做文本处理。因此,Adobe又做了TLF,并且将TLF整合到了Flex SDK 4.0(Gumbo)中。但TLF同样不是组件。不过TLF已经可以将需要显示的文本输入到DisplayObject当中,并加入了对选择文本、编辑文本、快捷键、事件的支持,虽然仍不能直接支持滚动条(配合事件和滚动条组件是可以支持的),但这已经前进了一大步,更方便我们使用了。Adobe针对Flash CS4制作了Text Layout Component组件,针对Flex的组件则包含在新的spark包中。
Flash通过一个新的组件, TLFTextField对外提供TLF功能, 这个组件集成在IDE里面了, 它提供了类似TextField API的高级抽象方法, 并且提供多种文字排版功能. 这些功能包括多列文本,文本线程(texttreads又称链接文本域),右到左和垂直的文字,以及一些印刷方面的增强.
2.一个最简单的textline
http://blog.csdn.net/hero82748274/article/details/5675536
import flash.text.engine.TextBlock;
import flash.text.engine.TextElement;
import flash.text.engine.ElementFormat;
import flash.text.engine.BreakOpportunity;
var str :String="欢迎你到这里,你已经掌握了一种独到武学招式了";
var format:ElementFormat = new ElementFormat();
format.color=0xff0000;//设计颜色
format.alpha=0.5; //文本透明度
format.fontSize=20;//字体大小
var textElement:TextElement = new TextElement(str, format);
var textBlock:TextBlock = new TextBlock();
textBlock.content = textElement;
var textLine:TextLine = textBlock.createTextLine(null, 450);
addChild(textLine);
textLine.x = 45;
textLine.y = 20;
详细http://as3.iteye.com/blog/1133502
3.tlf的体积问题
http://bbs.9ria.com/thread-52157-1-1.html
CS5这个强大的TLF(Text Layer Framework Engine)引擎对应的的类是fl.text.TLFTextField,如果你在代码使用了这个类,Flash CS5就会给你编译一个单独的文件大致是textLayout_1.0.0.591的SWF出来,这个就是RSL共享库,用到的时候就会自动被加载。问题就出在这里,这个运行共享库居然有149KB!太恐怖了,如果那它来做游戏,就会把你辛辛苦苦优化代码而减少的文件大小再添加回来!
4.设备字体 嵌入字体
http://www.doc88.com/p-504886933256.html
使用设备字体:如果浏览者系统无此字体,则会使用默认字体。这将导致文本看起来可能会与预料中的不同。
嵌入字体:假若使用了黑体,嵌入字体时选择语言为简体中文。这样就把整套的简体黑体嵌入swf中,体积会增加1M多。
5.swf嵌入字体例子
http://bbs.9ria.com/thread-83364-1-1.html
https://helpx.adobe.com/cn/animate/using/embed-fonts-consistent-text-appearance.html
6.纯代码嵌入字体
http://bbs.9ria.com/thread-278662-1-1.html