加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash中的多个字体/语言支持

发布时间:2020-12-15 07:23:14 所属栏目:百科 来源:网络整理
导读:问候, 我正在编写一个具有多语言支持的Flash应用程序.我最初选择的字体是Tahoma,因为它支持Unicode.客户更喜欢Lucida手写等非标准字体. Lucida手写与Tahoma没有相同的西里尔支持,这提出了一些问题,有几种方法可以解决,我想问你的建议哪个更好: 根据我的理解
问候,

我正在编写一个具有多语言支持的Flash应用程序.我最初选择的字体是Tahoma,因为它支持Unicode.客户更喜欢Lucida手写等非标准字体. Lucida手写与Tahoma没有相同的西里尔支持,这提出了一些问题,有几种方法可以解决,我想问你的建议哪个更好:

根据我的理解,我可以:

>为客户提供完全兼容Unicode(西里尔文,希伯来文,阿拉伯文,繁体中文,东亚等)字体的列表供您选择. (我不知道从哪里获得这样的列表;我对网络的搜索仅产生了部分符合unicode的字体列表.尝试http://look.fo/list-of-unicode-compliant-fonts作为一个很好的起点,看看我的样子).
>根据客户的位置(我们已经拥有),为英语用户提供Lucida手写,为国际用户提供Tahoma.这可能有些令人头痛;有没有人有这种方法的经验?
>构建一个新字体(IE,AlexeyMK Bold),其中使用Lucida手写英语和Tahoma用于其他一切.这个广告类似于Flash文件重量的500k,但应该(如果我理解正确)只在第一次加载.

你有什么建议?哪些是合理的解决方案,哪些完全在那里?有没有一种我没想过的方法?

非常感谢!
阿列克谢

编辑:一篇关于这个主题的好文章:http://www.itworld.com/print/58558

解决方法

好吧,最终你只有两个真正的选择:要么在SWF中嵌入字体,要么保证你的字体是什么样的,要么你没有,并使用设备字体. (或两者的混合,使用嵌入式或设备字体,具体取决于地区.)

如果您没有嵌入任何字体,那么您为文本定义的任何字体最终都只是一个建议 – 用户将看到的是设备字体,由他们自己的机器(使用该机器上的字体)呈现.因此,您可以“建议”Tahoma,但用户看到的将取决于他们是否具有该字体(并且可能因Mac版本的字体与PC版本而异).当然这也取决于支持;如果他们没有亚洲字体,那么他们就不会看到任何中文. (注意:你也可以选择像“_sans”这样的字体,它只是告诉客户使用它的标准sans-serif字体.我的猜测是,实际上这将是你所选择的相同字体. d定义“Tahoma”,但是YMMV.)

如果您嵌入了字体,那么用户将看到您期望的字体,因为字体是由Flash而不是操作系统呈现的.但如果你完全嵌入所有地区,包括中文所需的字形,那么我认为你会发现它增加了超过500K ..更像是我的经验2-5MB.但也许有一些我遗漏的细节.无论如何,对于通过网络传送的内容,我通常会认为,亚洲字体至少应该是设备字体.

要添加关于混合解决方案的单词,我已经完成了这个并且它是可行的.也就是说,假设您可以将逻辑添加到SWF中,您可以(例如)创建两个文本字段,一个使用嵌入式“Lucida whatever”,另一个使用非嵌入式“_sans”,然后在运行时创建一个它们是不可见的,并将文本放在另一个中,具体取决于您显示的区域. (我通过创建一个LocalizedTextfield组件,并在初始化时从静态属性中读取区域设置来完成此操作.)然后,您只需为每个区域设置决定文件大小是否值得显示该特定组字形.

最后一句话是,您不一定要假设您的字体引起的文件大小只会被加载一次.如果您使用简单的方法制作内容并在文本字段中嵌入字体,那么字体信息将成为SWF的一部分,因此无论何时加载,都会加载.要将其外部化,您可以将Label组件设置为单独的文件,然后决定是否加载它取决于浏览器的缓存设置.您还可以外部化字体资源本身并将其用作共享资源,但在AS2中,这有点毛茸茸.我听说AS3更容易,但我自己也没做过.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读