在 Flash 创作时难免会用到一些特殊的字体,而这些字体很可能不被 Flash 所识别,以至于在最后生成的 swf 文件中无法正常显示。解决的办法一般是将文字打碎转换成图形,但这只适用于 Static Text,对于 Dynamic Text 和 Input Text 是行不通的。Flash 本身为此提供了专门的解决办法,一种叫 Embed Fonts,将字体信息嵌入 fla 和 swf 文件中,保证字体最终能够按原样显示;另一种叫 Device Fonts,播放器选用机器上所安装的字体中与原字体最接近的一种来显示,由于这种方法不另外内嵌字体信息,所以生成的文件要比前一种方法小,但有可能最终显示的结果远离了作者的初衷。
Flash 本身带有三种 Device Fonts:_sans(类似于Helvetic和Arial), _serif(类似于Times Roman), _typewriter(类似于Courier)。有趣就在这里,我作了一个实验:用 Static Text,36 号 Arial 字体写了几个字,生成的 swf 文件是1.35KB; 勾选“use device fonts”后生成 swf 文件是196字节;保持“use device fonts”选中,将字体改为_sans, swf 文件大小还是196字节; 保持字体为_sans, 去掉“use device fonts”,swf 文件大小是120字节;将字体打碎生成的 swf 文件是1.37KB;最后改成 Dynamic Text,Embed Fonts 选全部字母,swf 文件是7.73KB。
什么意思?就是说在没有特殊要求的情况下输入文字应该尽量直接使用这三种 Device Fonts,可以大大减小文件的体积,当然如果必须要使用一些特殊字体,就只能牺牲一些空间了。
检验你使用的字体能否被 Flash 正常输出,打开文字抗锯齿选项,如果字体依然有锯齿,那你就要考虑选择上面提到的某种方法了。