我一直在网上寻找对我的问题的回应而没有成功。
我在库中创建了一个包含字体的swf,我的字体的类名是“MVerdana”。
此swf加载到另一个显示文本字段的swf中。 swf由Loader加载。 在完整的活动中, 我正在使用
获取字体类var loaderInfo:LoaderInfo = event.currentTarget as LoaderInfo;
var app:ApplicationDomain = loaderInfo.applicationDomain;
fontClass = app.getDefinition("MVerdana") as Class;
Font.registerFont(fontClass);
它运作良好
...但 当我加载这个swf(加载字体和显示文本字段的那个) 在上下文加载器中使用新的ApplicationDomain, 文本字段没有显示, 当我使用Font.enumerateFonts()
时,我可以看到字体已注册如果我在currentDomain中加载swf,它会工作, 但这不是我想要的。
我真的不明白发生了什么! 有人能帮助我吗?
答案 0 :(得分:1)
如果我理解正确,您将遇到以下错误:
我知道这一点,因为我确实遇到了我们在回来时构建的应用程序的相同错误。我们有不同的SWF加载到主SWF中,每个SWF都包含一个字体副本。一切都很好。然后我们决定将字体移动到主容器中,然后一切都坏了。
这里要注意的主要问题是,如果子SWF在时间轴上有一个文本字段,其名称与主SWF中嵌入的字体相同,则会导致问题。之前我们没有遇到过这种情况,因为我们的大多数应用程序都不依赖于时间轴,而是动态创建文本字段。因此,如果您能够动态创建文本字段,那可能就是您的答案。如果你必须使用相同的字体,并且你在时间轴上有文本字段,那么在Flash修复它当然是一个很难破解的。