4

根据我在 Google Fonts API 上的了解,这些字体旨在通过 JavaScript/CSS 访问。有没有办法为 Flash 应用程序动态加载它们,而不必将它们本地下载到服务器?

更新:所以我一直在玩弄这个,以下只是我对如何去做的一些想法。他们都没有工作,但我觉得他们在正确的轨道上。仅供日后参考...

当您选择要在 Google API 中使用的字体时,系统会为您提供一个指向根据您的偏好生成的 CSS 样式表的链接:

<link href='http://fonts.googleapis.com/css?family=Kranky' rel='stylesheet' type='text/css'>

我最初尝试仅href在我<fx:Style source=.../>.css.

失败后,我将链接复制到浏览器中并手动检索 CSS,将其粘贴到<fx:Style>标签中,就像使用任何其他 CSS 一样。同样,ActionScript 不喜欢这样,因为它无法在本地找到 URL。

我怀疑其中一些预防措施是由于 Flash 强制执行的整个“安全沙箱”位而实施的。有更多ActionScript 能力的人可能可以使用它来解决问题,但我不知道它是否可以解决。

4

1 回答 1

4

您可以在运行时将动态字体加载到 flash/actionscript 中。这里有一个很好的例子:http: //developer.yahoo.com/flash/articles/runtime-fonts-as3.html

基本上它归结为使用 Loader 类和 Font.registerFont();

问题是 Google 提供的 CSS 提供了 WOFF(网络开放字体)文件,我不相信 flash 可以嵌入该字体类型。

但是,Google 字体是可下载的,并且可以轻松嵌入到您的 Flex/Flash 应用程序中。只需在 Google 网站上转到您想要的字体,然后单击“下载”。从那里,您可以提取 TTF 文件并将其直接嵌入到您的 Flash 应用程序中。

您可以像这样在动作脚本中执行此操作:

[Embed(source="theFontYouDownloaded.ttf",  fontName = "someFont",  mimeType = "application/x-font")]
private var someFont:Class;

根据我的经验,有时您需要使用该 mimetype 才能使其正常工作。

由于您似乎在使用 Flex,因此您可以像这样简单地使用 Flex 样式表:

@font-face
{
src:            url("fonts/someFont.ttf");
fontFamily:     someFont;
font-weight:    normal; 
}
于 2011-06-28T19:51:01.657 回答