I came across a problem the other day which it turns out is quite common. Normally when I am dealing with fonts in Actionscript I simple create a new font in the library and call that via the SWC in FDT. However, it turns out that if I make a font called Didot_Regular and Didot_Bold and tick the appropriate ‘Bold’ and ‘Regular’ boxes my compiled SWF fails to differentiate between the two.
The solution is create your fonts in a Class and compile this as a separate SWC or SWF. Here’s how :
package fonts { import flash.display.Sprite; /** * @author Dan */ public class MyFonts extends Sprite { [Embed(source="/../fonts/Didot.ttc", fontName="Didot", fontStyle="normal", fontWeight="bold", mimeType="application/x-font-truetype")] public static var DidotBold : Class; [Embed(source="/../fonts/Didot.ttc", fontName="Didot", fontStyle="normal", fontWeight="normal", mimeType="application/x-font-truetype")] public static var Didot : Class; } }
Now compile this as a SWF or as a SWC library and then use the fonts as normal :
var tf : TextFormat = new TextFormat(); tf.font = new MyFonts_DidotBold().fontName; tf.bold = true; tf.size = 18; tf.color = 0xFFFFFF;