2011-06-15 79 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