在Flex/Flash项目中使用TLF(Text Layout Framework)的经验分享
在TLF出现之前,Flash中的文本排版支持是非常简陋的,相信很多朋友都深有同感,显然Adobe试图弥补这个缺陷,在Flash Player10中,我们可以使用TLF来增强文本布局,并实现一些之前很难实现的工作(比如对阿拉伯文的支持等等)。
在使用TFL之前,你需要了解下面几点:
- 如果用FB编译项目,且使用到了TLF,SDK版本必须为4.0或以上
- 如果在Flash CS5中使用TLF,编译为SWF,主文件大约增大50K,同时产生153K的SWZ共享库
- 如果在Flash CS5中使用TLF,编译为SWC,则整个TLF将被编译到SWC文件中,SWC文件增大约380K
- 在FB建立的ActionScript项目中使用第3步编译的SWC文件,重新编译后主文件亦增大大约380K
- 在FB建立的Flex项目中使用第3步编译的SWC文件,默认会将TLF作为SharedLibraray单独存储为SWZ文件,这样主文件会小一些,测试中,主SWF大约186K,SWZ则为153K
- Flash CS5的字体嵌入比CS4有所增强,你可以不再为某个文本框单独嵌入字体,而是在SWF中整体嵌入字体,并且指定Unicode Range(以前是不能指定的),这对于优化字体库体积非常有帮助
可见凡事有利必有弊,使用TLF无可避免的会增大一些体积,不过如果我们巧妙使用Runtime Shared Library,可以尽可能减小这方面的缺点。
在实际开发中,我们应该尽可能的将TLF文本内容和所需的字体嵌入分开,这样方便我们在运行时切换字体,而无需重新编译项目,示例步骤如下:
- 首先使用Flash CS5创建一个FLA文件,点击“文本”->“字体嵌入”,选择需要嵌入的字体和Unicode Range字符集,编译为SWF待用。
- 使用FB新建一个Action Script项目,加载刚才创建的字体库SWF,代码如下:
- fontLibLoader.load ( new URLRequest ( "font_lib.swf" ) ,new LoaderContext ( false ,ApplicationDomain .currentDomain ) ) ;
- fontLibLoader.contentLoaderInfo .addEventListener ( Event .COMPLETE ,initUI) ;
- 最后在项目中直接创建TLF文本框或使用Flash中创建的SWC定义好的TLF文本框,运行时设定字体即可,代码如下:
- var test : Test = new Test( ) ;
- var fmt: TextFormat = new TextFormat ( ) ;
- fmt.font = "Blackoak Std" ;
- test .txt.setTextFormat ( fmt) ;
- test .txt.text = "ASDFGHsdfghj123456789" ;
- addChild ( test ) ;
在Flex/Flash项目中使用TLF(Text Layout Framework)的经验分享相关推荐
- 导入Flex/Flash项目后的一个简单错误:无法创建 HTML 包装器
2019独角兽企业重金招聘Python工程师标准>>> 导入Flex/Flash项目之后包资源管理器中的文件夹出现了红叉,问题提示如图: 这可能是世界上最好解决的问题了,没有之一!! ...
- ajax返回304,jquery $ajax GET请求在IE浏览器兼容中遇到的304 cache请求的经验分享
在最代码上线后,印象最深的2个bug: 1.用户提醒数字明明已经查看了但是一直还在提示. 2.用户下载代码已经登录了但是一直提示尚未登录. 经过和牛牛们远程协助发现是因为在IE内核的浏览器下,http ...
- 分享在实际项目中积累的硬件调试经验 - 调试方法,以及常见调试案例
文章目录 一.硬件调试的四个目标 二.硬件调试心得 三.一块新的板子的调试思路 四.硬件调试,一些网络资料 五.单片机硬件调试中常见的案例(杂记) 往期系列文章: 1.裸机项目开发经验分享 - 完整开 ...
- 在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 fl.controls库
在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 1.用Flash CS5打开User Interface.fla文件 我的路径:C:\Program File ...
- 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...
几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...
- 修复迁移后Net Standard项目中的错误
接上一章,项目编译结果如下: 解决依赖dll引用 在Net Framework项目的引用如下: 各引用和作用: log4net(1.10.0.0) 用于写框架日志 Castle.DynamicProx ...
- Android 项目中常用到的第三方组件
项目中常用到的第三方组件 1 社会化分享 ShareSDK-Core-2.5.9.jar ShareSDK-QQ-2.5.9.jar ShareSDK-QZone-2.5.9.jar ShareSDK ...
- java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出
在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...
- 白手起家学习使用flex (5) 在Flash Builder5 中引用 fla 文件中的类( symbol )
[url=http://sg552.iteye.com/blog/1278253]上次说到[/url],在创建第一个项目的时候,出现了import的错误.解决之后,仍然有两个类找不到: birdMC, ...
- Flash+fms视频录制在项目中的实际应用
Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...
最新文章
- C++之肥大的界面之感想
- 北京python培训班价格-Python培训班多少钱?
- how to find annual report for a stock market company
- sqlserver 动态表名 动态字段名 执行 动态sql
- php添加上传附件,phpweb招聘模块job上传简历附件的修改办法
- 调用接口返回500_公交卡余额查询接口开放使用啦!
- Android中去掉显示标题的方法
- 【Algorithm】冒泡排序
- 解决Android 音频Xrun问题
- <matplotlib.lines.Line2D object at 0x7f68cfd5a2e8>终极解决办法
- vue 实现截图并获取截图的坐标_超好用的“电影截图”获取方式
- 单LED单端输出充电仓配合TWS耳机芯片QCC3020使用
- 银行家算法C语言代码
- 2008年十大最值得关注创业公司
- CH582 BLE 5.0 使用 LE Coded 广播和连接
- 用计算机怎么打出箭头,怎么打出箭头
- python 把数字日期转换成中文日期
- ANTLR4(二) Vistor Listener
- Android开发者上手宝典(三)
- 蚂蚁区块链第11课 以租房积分管理系统为例讲透蚂蚁Solidity语言差异精要