FLASH AS3 中文字体嵌入法

 

     看了网上那么多扯淡的FLASH中英文字体嵌入的方法,真是非常火大,大部分都是一些对FLASH特性不熟悉的人写的,或是直接照搬老外的做法,要知道老外只有26个字母,中文(基础字库)可是有成千上万个呢,所以~~~不要再看那些所谓的AS3高手的狗屁方法了,中国人还是要有自己的特殊包字库法—新点心的真·FLASH字库绑定法!

【效果】
http://image.solongbus.com/solongbus/200901/Sample.swf

 

    先说下应用领域一般遇到需要嵌入字体的情况,无外乎以下2种:
1、需要用到美观的界面文字,用程序大量生成或是需要经常更新的
2、需要用到旋转、缩放、渐变等效果

    以往的做法是在编译的时候直接嵌入字库,Flex里可以在嵌入的时候选择字符编码范围,比较麻烦,Flash IDE里只能整个字库,中文字库都是以兆为单位的,整个嵌入明显不切实际,下面举个例子:
以微软雅黑为例,每嵌入100个不重复的字,大约只增加20k的体积,足以应付大多应用,而如果嵌入整个微软雅黑的字库,生成的swf文件则达到了3.9Mb

    下面开始说重话:网上大部分”AS高手“的文章都是用的这些搓方法,还吸引了N多点击量,误导了无数人。

【原理】
    言归正传,说回我的自定义字库方法的原理:
利用Flash IDE中手工创建的TextField上的嵌入指定字库来减小嵌入字库的体积,然后用帧脚本配合绑定类来生成TextField,再直接返回给调用者。

【缺陷】
    这种方法可以使文件体积和文字效果得到两全,不过也有一些缺陷:
1、在输入文本的状态下,用程序直接控制文本,会导致输入文本焦点永远丢失。
2、无法在已生成的TextField上绑定字库

【字库创建步骤】
以下配图以FLASH CS3中文版为例,CS4的操作基本相同,只是界面位置有细微区别

1、新建一个.fla

2、如下图,在场景里新建一个动态文本,选择需要嵌入的字体并输入需要嵌入的文字即可,字体大小、颜色、对齐之类的参数都不用理会

3、如下图,点击属性面板最右侧的“嵌入”

4、弹出一个窗口,点击“自动填充”,就可以把刚在在文本框内输入的文字自动嵌入。当然你也可以直接选择窗口上提供的其他字符加载,比如大写、小写、数字都是比较常用的。

5、如果需要嵌入种字体,则只需要重复步骤2~4,创建多个动态文本即可。

6、按Ctrl+F8新建一个影片剪辑,更改“类”为自己喜欢的名称(后面加载代码中的getDefinition会需要这个名字),更改“基类”为bm.view.font.FontLib。确认本文提供的类放在与这个fla同级目录下,即可点击“确认”按钮了。

7、按ctrl+enter,即会生成一个嵌入了指定文字的字库swf了。

8、调用方法参见下文提供的范例代码。

【范例和源码】
  最后放上范例和源码(FLASH IDE和Flex都可以跑,带一个TextField修饰类),希望能给需要的人带来帮助
namipan下载

http://www.namipan.com/d/fontLibSample.rar/150564cf8f47a31f5af0d1b7641a792f2e38310fb9f00000

.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值