在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/Flash项目中使用TLF(Text Layout Framework)的经验分享相关推荐

  1. 导入Flex/Flash项目后的一个简单错误:无法创建 HTML 包装器

    2019独角兽企业重金招聘Python工程师标准>>> 导入Flex/Flash项目之后包资源管理器中的文件夹出现了红叉,问题提示如图: 这可能是世界上最好解决的问题了,没有之一!! ...

  2. ajax返回304,jquery $ajax GET请求在IE浏览器兼容中遇到的304 cache请求的经验分享

    在最代码上线后,印象最深的2个bug: 1.用户提醒数字明明已经查看了但是一直还在提示. 2.用户下载代码已经登录了但是一直提示尚未登录. 经过和牛牛们远程协助发现是因为在IE内核的浏览器下,http ...

  3. 分享在实际项目中积累的硬件调试经验 - 调试方法,以及常见调试案例

    文章目录 一.硬件调试的四个目标 二.硬件调试心得 三.一块新的板子的调试思路 四.硬件调试,一些网络资料 五.单片机硬件调试中常见的案例(杂记) 往期系列文章: 1.裸机项目开发经验分享 - 完整开 ...

  4. 在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 fl.controls库

    在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 1.用Flash CS5打开User Interface.fla文件 我的路径:C:\Program File ...

  5. 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...

    几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...

  6. 修复迁移后Net Standard项目中的错误

    接上一章,项目编译结果如下: 解决依赖dll引用 在Net Framework项目的引用如下: 各引用和作用: log4net(1.10.0.0) 用于写框架日志 Castle.DynamicProx ...

  7. Android 项目中常用到的第三方组件

    项目中常用到的第三方组件 1 社会化分享 ShareSDK-Core-2.5.9.jar ShareSDK-QQ-2.5.9.jar ShareSDK-QZone-2.5.9.jar ShareSDK ...

  8. java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出

    在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...

  9. 白手起家学习使用flex (5) 在Flash Builder5 中引用 fla 文件中的类( symbol )

    [url=http://sg552.iteye.com/blog/1278253]上次说到[/url],在创建第一个项目的时候,出现了import的错误.解决之后,仍然有两个类找不到: birdMC, ...

  10. Flash+fms视频录制在项目中的实际应用

    Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...

最新文章

  1. C++之肥大的界面之感想
  2. 北京python培训班价格-Python培训班多少钱?
  3. how to find annual report for a stock market company
  4. sqlserver 动态表名 动态字段名 执行 动态sql
  5. php添加上传附件,phpweb招聘模块job上传简历附件的修改办法
  6. 调用接口返回500_公交卡余额查询接口开放使用啦!
  7. Android中去掉显示标题的方法
  8. 【Algorithm】冒泡排序
  9. 解决Android 音频Xrun问题
  10. <matplotlib.lines.Line2D object at 0x7f68cfd5a2e8>终极解决办法
  11. vue 实现截图并获取截图的坐标_超好用的“电影截图”获取方式
  12. 单LED单端输出充电仓配合TWS耳机芯片QCC3020使用
  13. 银行家算法C语言代码
  14. 2008年十大最值得关注创业公司
  15. CH582 BLE 5.0 使用 LE Coded 广播和连接
  16. 用计算机怎么打出箭头,怎么打出箭头
  17. python 把数字日期转换成中文日期
  18. ANTLR4(二) Vistor Listener
  19. Android开发者上手宝典(三)
  20. 蚂蚁区块链第11课 以租房积分管理系统为例讲透蚂蚁Solidity语言差异精要

热门文章

  1. elasticsearch之analysis
  2. 免费将自己的网站升级成HTTPS
  3. Java继承的特征和优势
  4. python 关键词 抓取网页_python网络爬虫爬取网页内容
  5. Error(错误)、Exception(异常)之间区别
  6. 文化传媒婚纱摄影类网站织梦模板免费下载
  7. Java学习笔记(13)-构造方法
  8. 黄山5日游 最省钱的线路指南
  9. 小步大步算法,循环(Transform,玲珑杯 Round#5 F lonlife 1061)
  10. MFC:读取整个记事本文件