2011-06-15 55 views
4

从我可以在谷歌字体API说,这些字体都意味着是由JavaScript/CSS访问。有什么方法可以动态地为Flash应用程序加载它们,而无需将它们本地下载到服务器上?谷歌字体API和ActionScript

更新:所以我一直在讨论这一点,下面是关于如何去做的一些想法。他们都没有工作,但我觉得他们在正确的轨道上。只是以供将来参考...

当您选择字体的谷歌API的使用,你提供了一个链接,是基于自己的喜好生成的CSS样式表:

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

我最初用我的<fx:Style source=.../>装有刚href URL尝试,但动作脚本拒绝了这个(不知道是不是因为它不是本地的,或者意识到它没有.css结束)。

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

我怀疑一些这些预防措施的到位,由于整个“安全沙箱”位是闪存强制。谁的人有一些更多的ActionScript实力或许可以用它来解决这个问题,但我不知道这是否是可以解决的。

+1

好问题。我的猜测是,由于flash的编译时嵌入了字体,所以这是不可能的,但我会很高兴被证明是错误的。 – Bosworth99 2011-06-15 19:33:48

+0

@ Bosworth99,您可以在Runtime下载并注册字体。你只需使用flash.text.Font类并使用Font.registerFont(); – 2011-06-28 21:53:54

+0

@jonathan。不知道。严重的心理记录! – Bosworth99 2011-06-28 23:57:15

回答

4

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

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

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

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

你可以做,在动作是这样的:

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

在我的经验,有时你需要与MIME类型发挥获得工作的权利。

既然你似乎是使用Flex,你可以简单地使用一个Flex样式表像这样:

@font-face 
{ 
src:   url("fonts/someFont.ttf"); 
fontFamily:  someFont; 
font-weight: normal; 
} 
+1

+1 - 只是一个注释:www.fontsquirrel.com是开源/免费使用网页字体的绝佳资源。 – Bosworth99 2011-06-28 23:59:31