2011-09-06 58 views
1

flashdevelop项目(使用flexsdk 4.5.0编译)正在使用来自各种其他SWC的资产。 在主要的swf中,当舞台上添加资产时,设置字体时不会显示文本。嵌入在SWC中的静态字体未在SWF中使用

我试过嵌入,而不是在各种SWC中嵌入字体,但似乎没有任何工作。

我应该使用什么嵌入策略?

注:我使用的是经典文本字段,尝试嵌入并且不在各种SWC中嵌入字体。

回答

8

字体嵌入可能需要一点时间来解释,所以在这里看看我的帖子吧:http://divillysausages.com/blog/as3_font_embedding_masterclass

简单的事情,要检查:

  • embedFonts设置为true的文本字段?
  • 您的字体是否嵌有embedAsCFF=false?在flex 4.5中,这是真的,但如果你使用Spark组件,你只需要它。
  • 您正在使用的字形是否嵌入?在flashdevelop中,打开swc(+按钮),查看您要查找的字体中嵌入了多少字形。
  • 是在两个不同的swf中嵌入两次相同的字体(静态文本字段也是如此)。 Flash似乎存在一个错误,它将采用嵌入字体的第一个实例,而忽略其他字体。例如,如果你的SWC A中有Arial嵌入的“hello world”(静态文本字段,比如说),那么在SWC B中,即使它可能嵌入了整个字体,它也会使用来自SWC A的Arial除非SWC B处于另一个“重量”,例如粗体)。
+0

最后一点引导我沿着正确的道路前进。 – arithma

+0

同样适用于我;最后一点。我使用了多个具有相同字体的SWC,但第一个使用的SWC没有完整的字符集。感谢你! – blufiro

+0

您可以尝试的修复方法是将字体嵌入库项目复制到所有FLA库中。这样,哪个FLA/SWC首先被读取并不重要 - 我怀疑这是最理想的方式,不确定它是否每次都有效。 但是,当我有10个SWC并且不想将它们全部结合起来时,它为我节省了头痛。 – LessQuesar

0

也许这是一个太晚的答案,但我一直在寻找类似问题的答案,我希望这会帮助别人。

我遇到了同样的问题:我的可视内容是使用Flash CS6(作为SWC发布)开发的,我的“播放器”是使用Flash Builder 4.7开发的。在mac上,一切都起到了魅力,但是当我切换到windows时,swc组件字体(Arial,没什么特别)略有不同,导致了视觉上的不一致。

经过了数天的试图找出问题后,我发现当我在Flex中添加了一个火花TextInput组件时,swc组件与字体紧密相连。我的解决方法是从播放器中删除所有的火花文本组件(flex);现在它完美地工作。

无法真正理解为什么添加s:TextInput会导致此类行为或如何防止此行为。