在Flex/Flash项目中使用TLF(Text Layout Framework)的经验分享
在TLF出现之前,Flash中的文本排版支持是非常简陋的,相信很多朋友都深有同感,显然Adobe试图弥补这个缺陷,在Flash Player10中,我们可以使用TLF来增强文本布局,并实现一些之前很难实现的工作(比如对阿拉伯文的支持等等)。
在使用TFL之前,你需要了解下面几点:
可见凡事有利必有弊,使用TLF无可避免的会增大一些体积,不过如果我们巧妙使用Runtime Shared Library,可以尽可能减小这方面的缺点。
在实际开发中,我们应该尽可能的将TLF文本内容和所需的字体嵌入分开,这样方便我们在运行时切换字体,而无需重新编译项目,示例步骤如下:
最后在项目中直接创建TLF文本框或使用Flash中创建的SWC定义好的TLF文本框,运行时设定字体即可,代码如下:
- fontLibLoader.load(new URLRequest("font_lib.swf"),new LoaderContext(false,ApplicationDomain.currentDomain));
- fontLibLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,initUI);
- var test:Test = new Test();
- var fmt:TextFormat = new TextFormat();
- fmt.font = "Blackoak Std";
- test.txt.setTextFormat(fmt);
- test.txt.text = "ASDFGHsdfghj123456789";
- addChild(test);