Frage

Stellen Sie eine Präsentation erstellen, von in ein Dutzend Sprachen übersetzt werden, darunter auch solche mit nicht-lateinischen Schriftzeichen (Chinese, zum Beispiel). Der Branding Style Guide Client schreibt vor, dass bestimmte Schriftarten für bestimmte Sprachen akzeptabel sind. Der Inhalt selbst ist erforderlich externalisiert werden, so dass der Text, ohne jemals ein Fla Öffnung ersetzt werden kann oder erneut Speicher eine Grafik.

Wir sind also dynamische TextField- s sprechen, von XML bevölkert, mit der Schrift des Betrachters locale aufzunehmen ausgelagert - was ist der schmerzloseste Weg, um dynamisch nur die Schriftarten laden erforderlich (unabhängig von der Dateigröße), und gelten sie als notwendig? Ich bin auf der Suche nach Lösungen mit nur Flash, nicht Flex .

War es hilfreich?

Lösung 2

Ich bin total enttäuscht, dass niemand darüber wußte - na ja. Schließlich fand ich jemanden, der eine wenig Klasse geschrieben hatte, den font-Ladevorgang zu handhaben, und gab Anweisungen, wie die SWF-Dateien für sie zu Last erstellen:

Flash-AS3 Laden Fonts

Hoffentlich anderen Leuten wird dies hilfreich - es stellte sich die magische Kugel für meine Probleme sein out

.

Andere Tipps

Dies ist ein wenig Aufwand in Flash, aber es ist durchaus möglich. Was Sie tun müssen, ist auf „einbetten“ die Schrift in einem separaten swf, laden Sie diese swf aus der Hauptanwendung und registrieren Sie dann die Schriftart in dieser SWF ebenfalls. Dies ermöglicht Ihnen, Laufzeit-Laden von Schriften zu tun. Dies erfordert, dass Sie entweder die Schrift pro Sprache in der Anwendung angeben, oder in welchen Dateien Sie die Übersetzungen speichern in, das ist vielleicht nicht perfekt ist, aber weder alle Schriften in der Hauptanwendung eingebettet wird. Das wäre möglicherweise beträgt Hunderte von kb von Schriften ohne Grund geladen.

Nun, Sie werden einige, wie wissen müssen, welche Sprache Sie laden. Automatische Erkennung kann ziemlich schwierig sein.

Angenommen, Sie wissen, welche Sprache der Inhalt Sie Schriftarten registrieren können, um im laufenden Betrieb verwendet werden, mit Font.registerFont () ; Mit diesem können Sie eine swf laden, die eine Schriftart enthält, registrieren Sie es, und es ist für die zukünftige Verwendung in allen Textfelder zur Verfügung. print ( "Codebeispiel");

[Embed(src="someFont.ttf", fontFamily="myFont", mimeType="application/x-font")]
private var fontClass:Class;

...

Font.registerFont(fontClass);

Beachten Sie, dass Sie den Embed-Tag mit den Flex-Compiler werden müssen kompilieren unterstützen.

Ein gutes Dienstprogramm zusätzlich Font .hasGlyphs () , die Sie verwenden können, um zu überprüfen, ob die Zeichen, die Sie in einem eingebetteten Schriftarten verwenden sind. Dies kann entweder verwendet werden, um wieder zu einem Systemschriftart zu springen oder eine Warnung als Entwickler Ihnen angezeigt werden (wenn Sie einige Zeichen vergessen haben, oder was auch immer). Subklassen TextField- diese Überprüfung tun automatisch eine gute Idee sein kann.

Wenn dies geht online sein, im allgemeinen Einbettung Chinesen ist etwas, das Sie sich zweimal überlegen sollen. Einbetten alle Zeichen erhöht sich die Dateigröße viel und afaik gibt es nicht so viele komplette chinesische Schriften ohnehin zur Verfügung. Die Technik, die oben ist natürlich immer noch nützlich für viele andere Sprachen.

Zunächst einmal, stellen Sie sicher, Erwartungen gesetzt, so dass niemand denkt, werden Sie in der asiatischen Sprachen wie Chinesisch und Japanisch mit eingebetteten Schriften sein. Es sei denn, Sie in mehreren Megabytes von Glyphen laden möchten, werden Sie mit Geräteschriften, Punkt sein. Als solches ist es sinnvoll Richtlinien zu haben, auf dem Klasse der Schriftart zu verwenden - _sans, _serif, _typewriter oder ihre lokalisierten Mittel -. Aber nicht Leitlinien für die Schrift per se

Zum anderen in der Vergangenheit mein Ansatz war schon immer die Menschen in den meisten Fällen zu überzeugen, dass, sie sind ohnehin wahrscheinlich besser dran mit Geräteschriften. Mit Geräteschriften wird schneiden Sie Ihre Entwicklungszeit und vermeiden Fehler. Es wird Ihre Inhalte schneller geladen (wenn über das Netzwerk) machen, und in fast allen Fällen wird es schneller machen. Oft wird es auch mehr deutlich lesbar sein.

Kunden gerne verlangen, dass alle ihre Körpertext in Garamond-Extra-britischen sein oder was auch immer, aber stellen Sie sicher, dass sie die Kosten beteiligt wissen. Wenn sie das Licht sehen, befinden Sie sich erhebliche Schmerzen speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top