25
2016
08

flash文本消除锯齿不显示

当flash中需要用到文本时,设计师很喜欢用各种消除锯齿,程序员喜欢用设备字体。

消除锯齿美观,使用消除锯齿时,flash会提示嵌入字体,但是嵌入字体文件会太大,不嵌入字体动态文本经常会不显示,设计师会认为这应该是程序员要解决的问题,我一直不知道怎么解决。一直告诉别人,要么使用设备字体,要么嵌入字体,只能二选一,其实我自己也不懂。

一直觉得,当我们选择使用设备字体时,是优先使用我们选择的字体,选择的字体不存在时才使用设备默认的字体,这样是合理的,但是不知道flash是不是这么做的。

今天又遇到这消除锯齿的问题,使用了消除锯齿,然后什么都不显示,调了半天接口才定位到原因(夸张一点,其实开发的时候就知道可能会有问题)。

但是发现,设计师给的demo中也是用的消除锯齿,也没有嵌入字体,是可以显示的,用代码改变文本内容之后就不显示了。

仔细研究了一下,应该是在flash中添加的文本框,虽然没有选择嵌入字体,但是系统自动给嵌入了。

做了几个例子来对比。

“文字少-消除锯齿.swf”只有5k,“文字多-消除锯齿.swf”有72k;

都没有嵌入字体,但是文件大小差了很多,猜想可能是即使我们不选“嵌入字体”,系统也给嵌入了。

“文字多-消除锯齿.swf”有72k,“文字多-嵌入字体.swf”有72k

文本内容一样,文件大小也一样,进一步验证了,系统自动给我们嵌入了字体。

“文字多-嵌入字体-显示.swf”有70k,“文字多-嵌入字体-不显示.swf”有70k;

嵌入了字体,显示和不显示只差了2k。

“文字多-设备字体.swf”只有3k,“文字多-嵌入字体.swf”有72k;

内容是一样的,说明主要是嵌入字体占用的,文字内容本身占用体积很小。


虽然有人说不嵌入字体可以解决:http://bbs.9ria.com/thread-102286-1-1.html

但是,除非万不得已,不推荐这种方法。

正确的思路应该是这个:http://bbs.9ria.com/forum.php?mod=viewthread&tid=107081&highlight=%E6%B6%88%E9%99%A4%E9%94%AF%E9%BD%BF

对,研究来研究去,最终的结论还是“要么使用设备字体,要么嵌入字体”。你可以认为这是flash的BUG,但是不要忘了,你每次点“消除锯齿”时,flash都会提示你嵌入字体,甚至编译的时候,也会有警告,只是我们习惯了忽略罢了。


源码打包下载

« 上一篇下一篇 »

相关文章:

flash在课件开发中的优势  (2021-5-26 8:45:37)

批量设置flash中的图片无损平滑  (2020-12-21 19:14:49)

使用flash导出css精灵图(雪碧图)  (2020-12-21 19:5:21)

从flash中导出资源供pixijs使用  (2020-12-21 18:46:3)

闪电效果  (2017-11-28 15:4:19)

线段与椭圆的交点  (2017-1-6 14:43:41)

as3录制swf并保存flv视频  (2016-12-28 8:43:41)

解九连环  (2016-12-1 20:58:11)

as3实现setTimeout和trace  (2016-11-10 16:47:37)

registerCursor注册系统光标  (2016-9-14 9:49:40)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。