This is hopefully a new problem or just me missing something obvious. Please help! I'm embedding a font into my AS3 application. I'm doing everything by-the-book and it half-works.
In my main class,
[Embed(source="Art/moolbor.ttf", fontFamily="MoolEmbed",
mimeType="application/x-font")]
var MoolEmbed:Class;
Then later on in my code:
var newFormat:TextFormat = new TextFormat();
newFormat.font = "MoolEmbed";
newFormat.size = 20;
newFormat.color = 0xFCF374;
year.autoSize = TextFieldAutoSize.LEFT;
year.text = "Hello World";
year.embedFonts = true;
year.setTextFormat(newFormat);
year.antiAliasType = "advanced";
This works perfectly fine, and the text shows up beautifully. I can rotate it, alphas apply to it, and it's nicely antialiased. The problem is that the textfield is dynamic - Later on in the code:
year.text = "And a second hello world";
As soon as this code is triggered, the textfield disappears completely. I turn on
year.border = true;
and I can see that the textfield is still there, but it's size has shrunk down to just a few pixels. Thinking perhaps it was the autoSize messing things up,
//year.autoSize = ...;
Same problems. Thinking it might be embedding, I commented out the line:
//year.embedFonts = true;
And the textfield returns to working status, but (Understandably) loses it's ability to do alphas and rotations.
Any idea what's going on?
I wrote a long talkative entry on possible reasons as why this would not work. But as I re-read you code I think i spotted the error. Change the row:
year.setTextFormat(newFormat);
To:
year.defaultTextFormat = newFormat;
That should do it!
as defaultTextFormat didnt work for, a combination of the other two tips worked
import flash.text.Font;
in your constructor:
Font.registerFont(MoolEmbed)
and then
After you set the text property for the second time make sure you call setTextFormat(newFormat) again.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With