Actionscript 3 动作脚本3&;字体嵌入

Actionscript 3 动作脚本3&;字体嵌入,actionscript-3,fonts,embedding,Actionscript 3,Fonts,Embedding,在ActionScript3项目(FlashCS4,而不是flex)中正确嵌入字体有问题 我按照Adobe指南进行字体嵌入: 指南要求将Textfield.embedFonts属性设置为true。如果我这样做,并尝试在这个文本字段中显示另一种字体的文本,那么什么也不显示-这很好,我希望它是这样的 但现在我有一个特别的问题: 我将字体“Arial”嵌入常规样式,并在舞台上创建两个输入文本字段。其中一个我将embedFonts属性设置为true(如指南中所述),另一个我保持原样。现在我将它发布为s

在ActionScript3项目(FlashCS4,而不是flex)中正确嵌入字体有问题

我按照Adobe指南进行字体嵌入:

指南要求将Textfield.embedFonts属性设置为true。如果我这样做,并尝试在这个文本字段中显示另一种字体的文本,那么什么也不显示-这很好,我希望它是这样的

但现在我有一个特别的问题:

我将字体“Arial”嵌入常规样式,并在舞台上创建两个输入文本字段。其中一个我将embedFonts属性设置为true(如指南中所述),另一个我保持原样。现在我将它发布为swf,并尝试在textfield中输入以下(土耳其语)字符串

是的,我是巴雷夫·穆特卢克·吉蒂尔梅西尼·迪勒里兹

现在的问题是,untouched textfield正确地显示了字符串,但是embeddeFonts设置为true的字段缺少一些字母(例如,ş不显示)。但是Arial字体确实有这个字母,因为它在静态中正确显示-那么为什么我设置这个属性时它不能正确显示(如指南中所述)

在我的最后一个应用程序中,应该有一个文本字段,但有多个嵌入式字体以及在它们之间切换的方式(例如,用户必须能够选择另一种字体来输入中文文本)

有人能告诉我怎么做吗


谢谢

在Flash中嵌入字体并不像应该的那样简单,而且有很多特殊情况。。。确保嵌入正确字体字符的一种方法是在Flash发布设置中启用“生成大小报告…”。。。。在那里,您将看到嵌入的所有字体的所有字符。唯一的例外是使用[EMBED]标记嵌入的字体不会显示在那里

将字体添加到库中不会嵌入该字体的整个字符集(例如,Arial大约为8mb)…它只嵌入其中的一个子集…我不确定它是否始终是标准的西方拉丁语集,或者它是否依赖于计算机语言。 您可以使用电影中的任何文本字段(使用“字符嵌入…”对话框)手动扩展此集合,只要您使用实际的库字体名称(它显示在字体列表中,末尾有一个星号…在您的情况下,它将是“Arial*”)


您也可以将[EMBED标记与Unicorange一起使用来声明de字符集,但请记住,您声明的字体在编辑期间在Flash IDE中不可用……您需要在运行时使用ActionScript(文本格式、样式表等)进行设置,这在使用Flash时不是很实用。

我使用系统字体,避免使用诸如Arial之类的嵌入式字体

  public function get availableFonts(): Array
  {
     var font: Font = null;
     var allFonts: Array = Font.enumerateFonts(true).sortOn("fontName", Array.CASEINSENSITIVE);
     var embeddedFonts: Array = Font.enumerateFonts(false);

     var excludeList: Object = {}
     for each(font in embeddedFonts)
     {
        excludeList[font.fontName] = '';
     }

     var ourFonts: Array = [];
     for each(font in allFonts)
     {
        if (!excludeList.hasOwnProperty(font.fontName))
        {
           ourFonts.push(font);
        }
     }

     return ourFonts;
  }
此返回的字体列表将包含其所有字母


(如果ActionScript有一些更简单的内置设置差异的方法,那不是很好吗?

如果您正在寻找一种更健壮的字体加载解决方案,可以在运行时加载不同的字体,我在这里发布了一些代码()以及如何使用它的说明。

这里有一个简单的fla来解释这个问题:似乎并不是所有的字形都默认嵌入。检查一下这个我也会看到这个…我没有嵌入任何字体,而是让用户选择他们喜欢的字体。当他们选择Arial时,(其他一些人也会这样做)他们有一半的字母丢失了。我不得不从我让他们选择的列表中排除嵌入字体…这很痛苦!嗨,谢谢你的回答!奇怪的是,即使我创建一个文本字段并输入字符串Yeni Yılın Barıve Mutluluk Getirmesini Dileriz。在创作环境中,然后导出文本t的行为如下:-如果我将此文本字段的字符嵌入设置为“不嵌入”:文本看起来正常-如果我将此文本字段的字符嵌入设置为“全部”,即使我将字符串粘贴到“嵌入这些字符”中,也不会显示一些字母字段,导出后字符串将无法正确显示谢谢您的帮助