Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-12-2011, 23:33   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2011
Beiträge: 3
Textfield (nicht dynamisch erzeugt) > neuen Font zuweisen?

Ich experimentiere schon seit geraumer Zeit mit dem Einbinden von Fonts und dem TextFormat-Objekt bzw. dem StyleSheet.
Bei dynamisch, also mit AS erezugten TextFields lassen sich die Fonts problemlos austauschen. Nicht so bei Textfeldern, die bereits auf der Stage liegen. Ist dies wirklich so?
vice ist offline   Mit Zitat antworten
Alt 26-12-2011, 23:48   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
willkommen im flashforum!

es gibt nur eine class TextField und die ist immer und überall gleich.
zeig mal ein stück von deinem script.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 27-12-2011, 17:05   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2011
Beiträge: 3
Danke!...

Ja, das wundert mich auch. hier ein Teil des Codes:

das funktioniert einwandfrei:

var txtFormat : TextFormat = new TextFormat();
txtFormat.font = "Arial";
txtFormat.color = 0x000000;
txtFormat.size = 14;

var dynamicText : TextField = new TextField();
dynamicText.embedFonts = true;
dynamicText.setTextFormat(txtFormat);
dynamicText.text = "abc....";
addChild(dynamicText);


sobald ich ein auf der Stage liegendes TextField anspreche ist das TextField leer:

definition.myText.embedFonts = true;
definition.myText.text="abc...";
definition.myText.setTextFormat(txtFormat);

(auch wenn ich setTextFormat nach der Zuweisung des Textes ausführe):

definition.myText = "abc....";
definition.myText.setTextFormat(txtFormat);

gleicher Effekt bei:

var style_sheet : StyleSheet = new StyleSheet();
style_sheet.setStyle("p", { color:"#000000", fontFamily: "Arial",fontSize: "6px",display: "inline" } );
definition.myText.embedFonts = true;
var txtFormat:TextFormat = style_sheet.transform(style_sheet);
definition.myText.text="abc...";
definition.myText.setTextFormat(txtFormat);

gleiches gilt wenn ich das Textformat des Textfields einlese und verändere. Der Text verschwindet! Hast Du eine Idee?
vice ist offline   Mit Zitat antworten
Alt 27-12-2011, 17:22   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
a) der angegebene textfond muss in der fla eingebettet worden sein.

b) gerade am anfang, bitte jeden befehl in der flash-hilfe nachlesen. wer wann was macht und welche parameter verlangt werden.
bei setTextFormat mal anfangs- und end- wert angeben,
mal den unterschied zu defaultTextFormat nachlesen
und

c) sagt die flashhilfe:
Hinweis: Diese Methode funktioniert nicht, wenn ein Stylesheet auf das Textfeld angewendet wird.

also entweder styleSheet ODER textformat, da sollte doch was davon gehen ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-12-2011 um 17:27 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 27-12-2011, 18:00   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2011
Beiträge: 3
Okay, die Angabe des Startwertes also:

...setTextFormat(format, startwert) hat den gewünschten Effekt gebracht.

Das ist interessant. Besonders deswegen, da in der Flash-Hilfe beschrieben wird, dass das Weglassen der Parameter Start- und Endwert, zur Folge hat, dass das TextFormat automatisch auf den gesamten Text angewendet wird. Was ohne Parameterangebe jedoch nur bei dynamisch erzeugten Textfeldern der Fall ist!?

Ich danke Dir sehr für den Hinweis!

Geändert von vice (28-12-2011 um 12:22 Uhr)
vice ist offline   Mit Zitat antworten
Alt 27-12-2011, 21:51   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
das beweisst einmal mehr: programmieren hat nichts mit logik zu tun ;-) ist eine reine glaubensfrage.

naja, die reihenfolge wäre halt verkehrt: hier wird zuerst gesagt welcher text gestaltet werden soll und erst danach kommt der text.
dynamicText.setTextFormat(txtFormat);
dynamicText.text = "abc....";

andersrum sollte es eher gehen. beziehungsweisse defaultTextFormat benützen. der gilt für den nachkommenden text, der noch kein format hat, als voreinstellung.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (27-12-2011 um 21:56 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS3] dynamisch über mc erstelltes textfeld - font zuweisen und farbe ? Striker Flash Einsteiger 0 07-06-2009 23:10
TextField Font zuweisen. compuboy1010 ActionScript 1 3 23-01-2006 10:14
Font aus Combobox auswählen und TextField zuweisen? TeeRackz Flash MX 2004 10 02-07-2005 18:09
Font bei TextField zuweisen Tiburon Flash MX 2004 2 30-04-2004 13:50
TextField: Browser rendert den Font nicht mogli0815 ActionScript 1 7 26-05-2003 13:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele