`
steely816
  • 浏览: 130618 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在Flex/Flash项目中使用TLF(Text Layout Framework)的经验分享

阅读更多

在TLF出现之前,Flash中的文本排版支持是非常简陋的,相信很多朋友都深有同感,显然Adobe试图弥补这个缺陷,在Flash Player10中,我们可以使用TLF来增强文本布局,并实现一些之前很难实现的工作(比如对阿拉伯文的支持等等)。

在使用TFL之前,你需要了解下面几点:

  1. 如果用FB编译项目,且使用到了TLF,SDK版本必须为4.0或以上
  2. 如果在Flash CS5中使用TLF,编译为SWF,主文件大约增大50K,同时产生153K的SWZ共享库
  3. 如果在Flash CS5中使用TLF,编译为SWC,则整个TLF将被编译到SWC文件中,SWC文件增大约380K
  4. 在FB建立的ActionScript项目中使用第3步编译的SWC文件,重新编译后主文件亦增大大约380K
  5. 在FB建立的Flex项目中使用第3步编译的SWC文件,默认会将TLF作为SharedLibraray单独存储为SWZ文件,这样主文件会小一些,测试中,主SWF大约186K,SWZ则为153K
  6. Flash CS5的字体嵌入比CS4有所增强,你可以不再为某个文本框单独嵌入字体,而是在SWF中整体嵌入字体,并且指定Unicode Range(以前是不能指定的),这对于优化字体库体积非常有帮助

可见凡事有利必有弊,使用TLF无可避免的会增大一些体积,不过如果我们巧妙使用Runtime Shared Library,可以尽可能减小这方面的缺点。

在实际开发中,我们应该尽可能的将TLF文本内容和所需的字体嵌入分开,这样方便我们在运行时切换字体,而无需重新编译项目,示例步骤如下:

  1. 首先使用Flash CS5创建一个FLA文件,点击“文本”->“字体嵌入”,选择需要嵌入的字体和Unicode Range字符集,编译为SWF待用。
  2. 使用FB新建一个Action Script项目,加载刚才创建的字体库SWF,代码如下:
    1. fontLibLoader.load ( new URLRequest ( "font_lib.swf" ) ,new LoaderContext ( false ,ApplicationDomain .currentDomain ) ) ;
    2. fontLibLoader.contentLoaderInfo .addEventListener ( Event .COMPLETE ,initUI) ;
  3. 最后在项目中直接创建TLF文本框或使用Flash中创建的SWC定义好的TLF文本框,运行时设定字体即可,代码如下:
    1. var test : Test = new Test( ) ;
    2. var fmt: TextFormat = new TextFormat ( ) ;
    3. fmt.font = "Blackoak Std" ;
    4. test .txt.setTextFormat ( fmt) ;
    5. test .txt.text = "ASDFGHsdfghj123456789" ;
    6. addChild ( test ) ;
分享到:
评论

相关推荐

    Flex Text layout Framework(TLF) example

    自己整理的Flex Text Layout Framework 来自网上,很全的例子。包括了bookmarks,editor(simpleEditor,SimpleEditorWithCss),pagination(1,2,3),madlibs等,不能上传图片要不然上传上来给大家看一下。可以直接运行开...

    [转]多媒体范例: 如何使用CSS来格式化TLF文本

    标题中的“多媒体范例: 如何使用CSS来格式化TLF文本”暗示了这是一个关于使用CSS(层叠样式表)来处理和美化Adobe Flash中的TLF(Text Layout Framework)文本的教程。TLF是Flash中用于高级文本布局和格式化的框架,...

    [转] 第一次开源,给大家一个TLF图文并貌的高级应用类

    标题中的“第一次开源,给大家一个TLF图文并貌的高级应用类”暗示了这是一个关于开源项目的介绍,项目可能涉及使用Adobe Flash技术中的Text Layout Framework (TLF)来创建具有图文混排功能的高级应用程序。TLF是...

    fle中textarea控件中html文本显示与转换

    Flex 4引入了新的文本渲染引擎——Text Layout Framework (TLF),这使得文本处理变得更加强大和灵活。与Flex 3相比,Flex 4不再直接支持`textarea`控件的`htmlText`属性,而是采用了更为复杂的机制来实现HTML文本的...

Global site tag (gtag.js) - Google Analytics