[MX 2004] Font Symbol Problem

luke_the_duke

Erfahrenes Mitglied
Hallo zusammen!

Kann mir jemand erläutern, wir ich eine Schrift via Font Symbol einbette?

Ich hab bis jetzt folgenden Code probiert, der auch funktioniert. Bloss die Farbe des Textes lässt sich nicht ändern.

PHP:
with (_root.feld) {
			text = string;
			autoSize = true;
			selectable = false;
			embedFonts = true
};
_root.feld.setTextFormat(new TextFormat('titel'));// exportierte Schrift.
_root.feld.color = 0x818AA5;
Muss ich da anders rangehen, vielleicht ohne Font Symbol? Ich will die Schrift (dynamisch und per AS erstellt) eben rotieren lassen, und dafür muss man einbetten.

Gruss Lukas
 
Hi,

wenn Du die Schriftart "titel" richtig in der Bibliothek als Font eingebunden und diese auch zum Export für AS freigegeben hast (Rechtsklick: Verknüpfung), sollte die Schriftart angezeigt werden.

Die "color"-Eigenschaft musst Du dem TextFormat-Objekt übergeben, nicht dem Textfeld:
PHP:
var tf = new TextFormat();
tf.font = "titel";
tf.color = 0xFF0000;

meinTextfeld.setTextFormat(tf);

Gruß
.
 
Eben nicht,

dynamische Zuweisungen von Shared Lib Fonts sind nur für statisch erstellte Textfelder möglich, nicht für dynamisch erstellte Textfelder.
Das ist ein uralter, perpetuierter Bug von Flash 5, der mit Version 8 laut Matthias Kannengiesser abgestellt werden wird.
Die einzige Möglichkeit Einfluss auf das Aussehen der entsprechenden Fonts in dynamisch erstellten Textfeldern zu nehmen, besteht in der Verwendung einer Funktion namens FontManager, die als Notnagel vor Jahren schon ins Netz gestellt wurde (von Moock glaube ich) - damit kannst du überprüfen, welche Fonts auf dem Clientsystem installiert sind, und nach einer von dir festgelegten Prioritätsliste zuweisen.
Wenn Interesse besteht grab ich es mal aus.

B
 
So?

Vielleicht definieren wir "Shared Lib" unterschiedlich. Wenn ich eine Schriftart komplett in die Bibliothek packe (Neue Schriftart...), wird diese auch exportiert und ist verwendbar, wenn kein Textfeld in meinem Film existiert (sondern erst zur Laufzeit erstellt wird). Das habe ich im Zuge meies ToolTip-Tutorials festgestellt (siehe dort). Womit Du recht hast: Formatierungen wie Bold, Italic müssen in eigenen Fonts gespeichert werden und andere Fontgrößen als die Originalgröße werden "unscharf" ... vielleicht meinst Du auch das.

Gruß


P.S:: Notfalls setz Dir irgendwo ein unsichtbares Textfeld mit jeweils einem normalen, einem Fettgedruckten und einem kursiven Buchstaben und wähle die einzubindenden Zeichen manuell aus. Der Speicherbedarf dürfte ungefähr der selbe sein, da Du meistens nur Buchstaben, Zahlen und Symbole brauchen wirst und nicht die gesamte Schriftart.
.
 
Zuletzt bearbeitet:
Hallo zusammen!

Also bei mir hat das mit dem Einbetten hervorragend geklappt, auch mit dynamischen Testfeldern. Ich erstellte per AS für jeden Buchstaben eines Strings ein Textfeld in einem MC. Die Die Textfelder konnte ich ohne embedFonts und Font Symbol zwar skalieren, aber rotieren konnte ich sie nicht. Mit folgendem Code habe ich nun den Textfeldern die eingebettete Schriftart korrekt zugewiesen und damit kann ich alles skalieren, verschieben, rotieren usw. ohne Qualitätsverlust. Aber mit Shared Lib Fonts hat das meiner Meinung nach nichts zu tun. Hier wird die Schrift einfach normal in die swf exportiert.

PHP:
_root.titel_schrift = new TextFormat();
with (_root.titel_schrift) {
	color = 0x818AA5;
	size = 16;
	bold = true;
	font = "titel";//ID des exportierten Font Symbols
}
with (_root["zeichen_" add i].feld) {
			text = string[i];
			autoSize = true;
			selectable = false;
			embedFonts = true;
			setTextFormat(_root.titel_schrift);
}

@Basileus:

Es gibt doch eine ganz einfache statische Methode der TextField -Klasse, um die verfügbaren Schriften des Hosts des Flash Players auszugeben und die heisst getFontList.

Gruss
 
Zuletzt bearbeitet:
@B.: ok, glaub ich, aber es ging hier m.E. nicht um Shared Libraries, sondern um die native Bibliothek des Films, oder habe ich das missverstanden?

Gruß
.
 
Ok,

zu schnell geantwortet, wenn ich mit Bibliothekselementen arbeite, dann meisstens in einer verschachtelten Struktur, bzw. ich erinnere mich nicht mehr an meinen letzten eindimensionalen Movie.

Also - in einfachen 'nativen' Strukturen geht es so, wie Datic das beschrieben hat, in komplexen Filmen, über eine loadMovie Grenze hinweg erst ab Flash 8.

B
 

Neue Beiträge

Zurück