embedFonts nur für TextField?

Orphelina

Erfahrenes Mitglied
Hallo,

ich möchte eine Schriftart einbetten. Hab auch ein gutes Tutorial gefunden und das tut auch wunderbar. Nur wird dabei ein TextField- Objekt benutzt.
Geht das auch mit TextArea oder Label? Dazu konnte ich bisher leider nichts finden...

Gruß
 
Label ist ja eine Sprungmarke die nur Flashintern sichtbar ist, warum sollte man da eine Schrift einbetten? Den Inhalt, bzw Namen einer Sprungmarke sieht doch nur derjenige der die Fla-Datei hat, und der hat in der Regel auch die Schrift.

Den Begriff TextArea kenn ich nur von HTML und hab ich im zusammenhang mit Flash noch nie gehört.

Sofern du Irgendwo in deinem Flashfilm dynamischen Text stehen hast, benutzt du zwangsläufig ein Textfield. Je nach dem ob du dem nur eine Variabel oder einen Instanznamen zuweist hast du dann ein Textfield-Objekt, aber was das einbetten von Schriften angeht, funktioniert das bei beiden gleich.
Einfach auf Embed... bzw auf Zeichen... klicken und die Teile der Schrift einbetten, die man benötigt.
 
Hallöchen,

also ich kann dynamischen Text sowohl in eine Label- Komponente als auch in eine TextArea- Komponente oder in ein TextField laden... Weil ich das alles 3 mache, frag ich mich ob dieses embedFonts eben nur für die TextField- Klasse gültig ist, weil ich den Rest dann anpassen muss. Bei der TextArea kann man auch Border und ähnliche Styles setzen und ändern.... Ich arbeite mit Mx 2004 Professional- du?
Ich regel hier alles in Action-Scripten, nichts mir auf die Bühne ziehen und Eigenschaften anklicken, da ist alles etwas komplizierter...

Danke trotzdem für deine Antwort!

Gruß
 
Label sagt mir zwar immernoch nichts in dem Zusammenhang, aber so bettest du eine Schrift in einem per Actionscript erstellten Textfield ein:

Erstmal in der Bibliothek auf "New Font" bzw "Neue Schrift", dann eine Schrift aussuchen, einen Namen vergeben.
Dann rechte Maustaste auf deine neue Schrift in der Bibliothek und auf "Linkage" bzw "Verknüpfung", da dann das Häckchen bei "Export for Actionscript" bzw irgendwas adequatem Deutschem setzen.
Mit dem Namen den man an dieser Stelle wählt, kann man die Schrift per TextFormat.font zuweisen, in meinem Beispiel heißt sie kreativerweise "Arial".

PHP:
 var my_fmt:TextFormat = new TextFormat();
 my_fmt.font = "Arial";
 
 this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, 160, 120);
 my_txt.wordWrap = true; 
 my_txt.embedFonts = true;
 my_txt.text = "Hello world";
 my_txt.textColor = 0xff0000
 my_txt.setTextFormat(my_fmt);
 my_txt._rotation = 45;


edit0:
Ah, Label hab ich gerade dann auch endlich entdeckt.
Mit Komponenten arbeite ich nie, insofern kann ich dir da wenig zu sagen, aber zumindest für eine "normales" Textfeld steht´s ja oben wie´s geht.

edit1:
So solls mit einem Label gehen:
Erstmal wie oben beschrieben in der Bibliothek eine Schrift Verknüpfen und dann:
PHP:
myLabel.setStyle("fontFamily","myLibraryFont")
myLabel.setStyle("embedFonts",true)
 
Hallöchen,

ja die lieben Komponenten :)
Okay, also so hat es jetzt tatsächlich funktioniert. Aber was mich wundert ist, ich habe auch mal ein normales Arial eingebettet und jetzt wird es ganz verschwommen dargestellt- eigentlich sollte das ja nicht sein... Liegt das an meinem Code oder der SWF Datei?

Gruß

edit: Das ganze funktioniert auch mit der TextArea- Komponente, allerdings wird mein Text nicht mehr angezeigt wenn ich HTML auf true setze für mein Text- was ist denn das für ein Feature, dass meine Komponente Eigenschaften verliert wenn man Fonts einbettet?
 
Zuletzt bearbeitet:
Die Label-Komponente hat keine Möglichkeit, Alias-Text ein- oder auszuschalten, wenn Du keine Font-Objekte verwendest. Wenn Du ein neues Font-Objekt erstellst, kannst Du auswählen, ob der Text geglättet dargestellt wird.

Gruß

-D-, der sich mit Komponenten vielleicht dann abgeben würde, wenn sie a) besser dokumentiert und b) schlanker angelegt wären ^^
.
 
@ Datic:
Das hab ich jetzt nicht verstanden... Was willst du mir damit sagen? Kannst du das nochmal ein einfachen Worten schildern?

Danke und Gruß

Edit: Das heisst wenn ich das über "Sachen auf die Bühne ziehen" mache, kann ich das ändern, aber nicht wenn ich das im AS mache?
Und wie sieht das eben bei der TextArea aus? Da ist es auch verschwommen... Wie kann man das umstellen?
 
Hi,

Du erstellst (wie Chris schon erwähnte) ein neues Fontobjekt:

- in der Bibliothek oben rechts auf "neue Schriftart", Font und Eigenschaften wählen (u.a. auch Alias-Text)

- Das Font-Objekt zum Export für AS freigegeben und einen Verknüpfungsbezeichner eingeben (Rechtsklick -> Verknüpfung)

Dieses Fontobjekt kannst Du nun per AS Deinem Label zuweisen:
PHP:
meinLabel.setStyle("embedFonts", true);
meinLabel.setStyle("fontFamily", "fontbezeichner");
// "fontbezeichner" ist der Verknüpfungsbezeichner 
// Deines Fontobjektes

Gruß
.
 
Ja gut, das hat (eigentlich) funktioniert. Sobald ich mein Label/ TexArea dann aber auf HTML = true; setze, bekomm ich keinen Text mehr angezeigt.
Wie gesagt ich mach das alles per AS...
Mach ich die Option wieder raus ist der Text wieder zu sehen- Bug oder Feature?

Mach ich meine TextArea wieder ohne embededFonts und setze ein Style für Schriftfarbe- funktioniert- mach ich HTML auch hier wieder rein, dann ist mein Text schwarz, also er ignoriert diese Anweisung. Das macht mich ganz wahnsinnig, denn ich versteh nicht was sich da bitte in die Quere kommt oder wofür das gut sein soll?! Wieso kann ich das nicht gleichzeitig benutzen?

Gruß
 
Keine Ahnung; ich nehme an, Du musst in diesem Fall alle Eigenschaften Deines Fonts in dem html-Code extra eingeben - allerdings habe ich für Labels keine Methode oder Eigenschaft gefunden, mit der man ihnen html-Code zuweisen kann (htmlText scheint nicht zu funktionieren).

Gegenfrage: Warum verwendest Du Labels statt stinknormalen Textfeldern - was für einen Vorteil hast Du davon?

Gruß
.
 

Neue Beiträge

Zurück