
Kommentare, die die Welt nicht braucht – Folge 1
![]()
Halt irgendwas mit Sternen.
Schönes Wochenende!

Danke an... wer hatte mir das noch gleich geschickt? Sven? Hm...
Guerilla-Werbung – für Nerds!
Gefunden am Neckar, Gruß an die Alster 🙂
TextField cursor position

Leider ist die Position des Cursors
|
1 |
tf.caretIndex |
schreibgeschützt, aber wer "nur" den Cursor an's Ende des Textes bewegen will (etwa, weil er einen String vor die aktuelle Eingabe gehängt hat), der nutze:
|
1 |
tf.setSelection( tf.text.length, tf.text.length ); |
hth.
Obama’s Loss Traced To Lennart Kruse.
Krass, was man sich so bauen lassen kann, wenn man zuviel Geld hat (also Obama jetzt):
Guckst Du hier: www.moveon.org
und hier: www.heute.de/ZDFheute/inhalt/20/0,3672,7396948,00.html
Rolands Fotokurs: Alles neu.

Rolands Fotokurs ist jetzt total hip Typo3-basiert. Na, warum nicht, jeder brauch' ne Spielwiese 🙂 Aber ein guter Anlass mal auf die Existenz des Kurses hinzuweisen (Gruß an Thore!)
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:
|
1 2 3 4 5 6 7 8 9 10 |
package x.y.z { import flash.display.Sprite; public class Fonts extends Sprite { [Embed(systemFont='Arial', fontName="Foo", fontWeight='bold', mimeType='application/x-font')] public static var Foo : Class; } } |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
private var _loader:Loader; private function loadFonts():void { _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIoError); _loader.load("fonts.swf", new LoaderContext(false, ApplicationDomain.currentDomain)); } private function onIoError( error:IOErrorEvent ):void { // handle error } private function onProgress( event:ProgressEvent ):void { // display progress } private function onComplete( event:Event ):void { var AssetClass:Class = Class(ApplicationDomain.currentDomain.getDefinition("x.y.z.Fonts")); Font.registerFont( AssetClass["Foo"] ); } |
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:
|
1 2 3 |
tf.text = "Some text"; tf.embedFonts = true; tf.setTextFormat( new TextFormat("Foo") ); |
hth.
Politik.
Obama nutzt insbesondere auch das Internet für Werbung, heißt es:
und China? Chinesen nutzen insbesondere nicht das Internet, heißt es.
Danke an Christoph (oben), Strutz (unten). Original ist hier.
Zum Thema US-Wahlkampf (Danke, Olaf):
