Dynamisches tf mit embedFonts im container = Prob

Denniz

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Problem mit dem erzeugen eines Textfeldes in einem container welchen ich auch zuvor dynamisch erstellt habe.
Also in dem container wird dann eine swf geladen und nachdem der ladevorgang abgeschlossen ist rufe ich eine Funktion auf welche ein textfeld mit eingebetteter schriftart erzeugen soll. Der font liegt in der bibliothek.
Ich krieg es nicht gebacken das der Text im feld angezeigt wird obwohl dieser richtig getraced wird.
Code:
var container = this.createEmptyMovieClip("container", this.getNextHighestDepth());
container._visible = false;
container.loadMovie("generator.swf");
this.onEnterFrame = function() {
	var total_bytes = container.getBytesLoaded();
	var loaded_bytes = container.getBytesTotal();
	var remaining_bytes = total_bytes-loaded_bytes;
	if (loaded_bytes>10) {
		var percent_done = int(loaded_bytes/total_bytes*100);
		if (percent_done>=100) {
			container._visible = true;
			makeTextField();
			delete this.onEnterFrame;
		}
	}
};
function makeTextField() {
	format = new TextFormat();
	format.font = "meinFont";
	format.size = 12;
	format.color = 0x152468;
	tf = container.createTextField("tf", this.getNextHighestDepth(), 10, 9, 480, 412);
	tf.embedFonts = true;
	tf.html = true;
	tf.selectable = true;
	tf.background = 0xFFFFFF;
	tf.type = "dynamic";
	tf.setNewTextFormat(format);
	lorem = tf.htmlText="meinText";
	trace(lorem);
}

Wenn ich "tf.embedFonts = true;" entferne klappt es oder wenn ich statt "tf = container.createTextField("tf", this.getNextHighestDepth(), 10, 9, 480, 412);"
"tf = this.createTextField("tf", this.getNextHighestDepth(), 10, 9, 480, 412);"
schreibe klappt es auch. Aber embedFonts und container.tf zusammen wollen einfach nicht funktionieren. Der container wurde doch schon erzeugt bevor ich createTextField mache.
Gesamter code liegt auf dem ersten frame im root.
Was mache ich falsch?

EDIT1:

Ok, da muß man auch erst einmal drauf kommen das der Font in der library der anderen swf liegen muß welche in den container geladen wird.


EDIT2:

Also ich habe hier ein weiteres Problem mit embedFonts.
Es scheint so als ob die die Eigenschaft nicht alle zeichensätze einbettet als wenn man jetzt ein Textfeld per hand erzeugt und dann auf Zeichen einbetten geht.
Kyrillisch zB wird in meinem dynmisch erzeugten textfeld nicht angezeigt.
Im Fontobjekt in der library kann ich bis auf kursiv und bold nichts einstellen.
Habe Flash 8 und veröffentliche den Film schon für player8 und AS2 aber es kommen
immer nur ein paar punkte und kommas im meinem textfeld.
Muß ich eine weitere text eigenschaft fürs Formatieren verwenden oder brauch ich die russische flash editon um zb kyrillisch darzustellen wenn ich alles per AS lösen will?
 
Hi,

ich bin davon ausgegangen, dass beim Erstellen eines neuen Font-Objekts der komplette Zeichensatz eingebettet wird (mit Deiner Programmversion hat das nichts zu tun).

Ist dem nicht so, wird Dir nichts anderes übrigbleiben, als Dir irgendwo manuell ein Textfeld hinzusetzen, in welches Du die benötigten Zeichen einbettest. Ich halte diese Variante sowieso meist für besser, da man in der Regel nur einen kleinen Teil des Zeichensatzes benötigt und so viel Speicherplatz sparen kann.

Gruß
.
 
Zurück