Actionscript 3 加载到应用程序沙盒中的SWF中的AS3嵌入字体-奇怪的行为

Actionscript 3 加载到应用程序沙盒中的SWF中的AS3嵌入字体-奇怪的行为,actionscript-3,flash,fonts,air,Actionscript 3,Flash,Fonts,Air,我在AS3,Air应用程序中看到了一些非常神秘的字体行为,使用Flash 11.5版,在Flash Pro CC 2014中编译我的fla文件 Context:Air应用程序,shell在运行时将swf作为“模块”加载到应用程序域中(因此它们运行时就像它们是主应用程序的一部分,而不是沙盒中的子应用程序) 问题:在一些加载的SWF中包含嵌入字体的一些动态文本字段没有出现,而其他的则没有问题 详细信息: 这是一个新问题——几周前还不错的字体现在出现了问题。(相同的计算机、相同的操作系统和闪存版本)

我在AS3,Air应用程序中看到了一些非常神秘的字体行为,使用Flash 11.5版,在Flash Pro CC 2014中编译我的fla文件

Context:Air应用程序,shell在运行时将swf作为“模块”加载到应用程序域中(因此它们运行时就像它们是主应用程序的一部分,而不是沙盒中的子应用程序)

问题:在一些加载的SWF中包含嵌入字体的一些动态文本字段没有出现,而其他的则没有问题

详细信息:

  • 这是一个新问题——几周前还不错的字体现在出现了问题。(相同的计算机、相同的操作系统和闪存版本)

  • 某些“模块”(SWF)中缺少的相同字体也存在于其他模块中

  • 一些字体来自同一个家族作品,随处可见(Myriad Pro Semibold),其他字体在某些地方缺失,但在其他地方存在(Myriad Pro Regular)

  • 所有文本字段都在movieclips中,然后在编译时使用

[Embed(source=“someFla.swf”,symbol=“libraryExportName”)]

  • Air“shell”包含并成功使用Myriad Pro Semi、Myriad Pro Regular和Arial。(仅限)
  • 在测试过程中,某些字体在本地显示良好,但在安装Air应用程序后消失(Myriad Pro Regular)
  • 其他字体一直都是垃圾——例如Helvetica Neue,在测试中以及安装后在多个地方消失
  • 所有字体都根据需要嵌入到各个SWF(基本拉丁语集)中,但不会导出到actionscript中,因为字体是在编译时而不是在运行时设置的

如果有人有任何见解或建议,那就太好了。我的直觉是,嵌入到多个主权财富基金中的字体在某种程度上是“冲突”的,但我无法解释为什么我会遇到一些冲突,而另一些则很好。多年来,我一直在为flash中的字体嵌入问题争论不休,我尝试了所有我能想到的方法来克服常见的问题。

如果您编译到多个平台(iOS、Android、Air、EXE、flash),嵌入字体总是会导致一些问题,而只有一种解决方案是可行的(至少,自从我们采用此解决方案以来,我们没有遇到任何问题):

  • 在您的项目中包括一个文本字段,每个您使用的特定非系统字体1个(fontAwesome、WebDings等;我们倾向于称它们为
    \u WebDings
    \u awesome
    ,等等)

  • 在设计期间,将您使用的所有特定字符复制到该文本字段

  • 启动时隐藏文本字段(
    \u webdings.visible=\u awesome.visible=false

  • 忽略所有“您必须包含”-消息,因为您正在使用的字符将在编译时自动包含在swf中