Google Fonts selber hosten

Mein Theme (Ari von Elmastudio) nutzt von Haus aus die Fonts Droid Sans und Droid Serif von Google. Bis gestern waren die auch bei Google gehostet, was ich eh immer mal ändern wollte. Manchmal benötigt man halt etwas Druck 🙂 In diesem Fall durch dieses Gerichtsurteil (via).

Also: Besagte Fonts sind Open Source, ich habe sie hier und hier als ttf runtergeladen. Auf transfonter kann man sich ein entsprechendes Webfont-Package erzeugen lassen, in diesem Fall binde ich in der functions.php ein (statt bisher zwei) css ein:

Fonts auslagern. [UPDATE]

Es macht Sinn, verwendete Schriftarten in eine Flashanwendung einzubinden – so sind sie unabhängig vom Zielsystem verfügbar, und nicht zuletzt kann man erst dann (Alpha-)Tweens auf sie anwenden. Andererseits machen sie die Flashanwendung zum Teil sehr groß. Die Lösung? Die Schriftarten erstmal in eine separate SWF auslagern:

Zu beachten: Die Klasse muss Sprite extenden; der FontName sollte ein anderer sein als der Fontname im System (um diesen nicht zu überdecken); Schriftschnitte wie bold oder italic müssen explizit eingebunden werden. Der Übersichtlichkeit halber benenne ich die Fonts (FontName) genauso wie die Klasse, in die sie embedded werden (hier: “Foo”)

Diese Klasse wird nun kompiliert, und die SWF unter einem Pfad, zB “fonts.swf” abgelegt. Unter diesem Pfad kann sie nun, etwa im Rahmen einer Preloader-Queue mit weiteren Assets, dynamisch von der eigentlichen SWF nachgeladen werden:

Zu beachten hierbei: Es muss der komplette Package-Pfad (“x.y.z.Fonts”) an ApplicationDomain.getDefinition() übergeben werden! Nur der Klassenname genügt nicht.

Außerdem: Wann immer man den Text des entsprechenden TextField (neu) gesetzt hat, muss das TextFormat mit dem eingebundenen Font (neu) zugewiesen werden. Die Property embedFonts setzt man auf true:

hth.