Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):
[Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font- truetype")]
Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):
[Embed(systemFont="systemName", fontName="FontName", mimeType="application/x-font")] private static var font:Class;
Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):
[Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font- truetype")] private static var fontName:Class;
Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):
// dentifierName is Movieclip AS3 Identifier value [Embed(source="mySWF.swf#identifierName")] private var MyFontHolder:Class;
Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):
Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):
package
{
import flash.display.GradientType;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.geom.Matrix;
import flash.text.AntiAliasType;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.text.engine.*;
[SWF(width="760", height="450", frameRate="12", backgroundColor="#FFFFFF")]
public class FontTest extends Sprite {
//Embed single font typeface from ttf file,
//advancedAntialiasing=true, all font glyphs included,
//embedAsCFF=true - FTE will be used
[Embed(source="./font/enliven_design_element/Element.ttf", fontName="Element")]
// Do not use this variable directly.
//It exists so that the compiler will link in the font.
private static var Fontclass1:Class;
//Embed multiple typefaces from otf files using the same font alias
//advancedAntialiasing=true, Basic Latin unicode range included
//Notice that the same fontName alias used for each font-file embedded
[Embed(source="./font/backpacker_bpreplay/BPreplay.otf", fontName="BPreplay",
fontStyle="normal", fontWeight="normal", embedAsCFF="false", unicodeRange="U+0020-007E")]
private static var Fontclass2:Class;
[Embed(source="./font/backpacker_bpreplay/BPreplayBold.otf", fontName="BPreplay",
fontStyle="normal", fontWeight="bold", embedAsCFF="false", unicodeRange="U+0020-007E")]
private static var Fontclass3:Class;
[Embed(source="./font/backpacker_bpreplay/BPreplayBoldItalics.otf", fontName="BPreplay",
fontStyle="italic", fontWeight="bold", embedAsCFF="false", unicodeRange="U+0020-007E")]
private static var Fontclass4:Class;
[Embed(source="./font/backpacker_bpreplay/BPreplayItalics.otf", fontName="BPreplay",
fontStyle="italic", fontWeight="normal", embedAsCFF="false", unicodeRange="U+0020-007E")]
private static var Fontclass5:Class;
// Embed System font
[Embed(systemFont="Tahoma", fontName="Tahoma", mimeType="application/x-font-truetype",
embedAsCFF="false", unicodeRange="U+0020-007E")]
private static var Fontclass7:Class;
// Embed System font
// advancedAntialiasing=false
[Embed(systemFont="Tahoma", fontName="TahomaNoAdvancedAA", mimeType="application/x-font-truetype",
embedAsCFF="false", advancedAntiAliasing="false", unicodeRange="U+0020-007E")]
private static var Fontclass8:Class;
/* This embed from system font collection should work, but it did not for me
on Mac OS 10.6, flex 4.
I expected to embed custom typeface "Futura Condensed Medium" from system font collection,
however this code results in embedding "Futura" regular typeface instead.
*/
[Embed(systemFont="Futura", fontName="Futura", fontFamily="Futura Condensed Medium",
mimeType="application/x-font-truetype-collection",embedAsCFF="false",unicodeRange="U+0020-007E")]
private static var Fontclass9:Class;
/* When embedding system-font this property should include the font name and font face.
In this case the fontName property is generated automatically.
Notice that font name used for TextFormat.font property assignment is "Trebuchet MS",
not "Trebuchet MS Bold"
*/
[Embed(systemFont="Trebuchet MS", fontFamily="Trebuchet MS Bold", fontWeight="bold",
mimeType="application/x-font-truetype", embedAsCFF="false", unicodeRange="U+0020-007E")]
private static var Fontclass10:Class;
// embedding movieClip, created in Flash, containing bitmap font
[Embed(source="bitmapFontTest.swf#bitmapFontContainer")]
private static var MyFontHolder:Class;
public function FontTest()
{
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
makeBackground();
var topBar:TopBar=new TopBar("Embedding fonts sample");
addChild(topBar);
var str:String = "Flash Text Engine Line, embedAsCFF=\"true\"";
var fd:FontDescription=new FontDescription("Element", "normal", "normal",
FontLookup.EMBEDDED_CFF);
var format:ElementFormat = new ElementFormat(fd, 30);
format.color=0x8F360E;
var textElement:TextElement = new TextElement(str, format);
var textBlock:TextBlock = new TextBlock();
textBlock.content = textElement;
var textLine1:TextLine = textBlock.createTextLine(null, 750);
addChild(textLine1);
textLine1.x = 30;
textLine1.y = 70;
var str0:String="Multiple typafaces fontName=\"BPreplay\". Normal typeface";
var str1:String="Multiple typafaces fontName=\"BPreplay\". Bold typeface";
var str2:String="Multiple typafaces fontName=\"BPreplay\". Italic typeface";
var str3:String="Multiple typafaces fontName=\"BPreplay\". Bold italic typeface";
var textFormatBPreplay0:TextFormat=new TextFormat();
textFormatBPreplay0.font="BPreplay";
textFormatBPreplay0.size=22;
var textFormatBPreplay1:TextFormat=new TextFormat();
textFormatBPreplay1.font="BPreplay";
textFormatBPreplay1.bold=true;
textFormatBPreplay1.size=22;
var textFormatBPreplay2:TextFormat=new TextFormat();
textFormatBPreplay2.font="BPreplay";
textFormatBPreplay2.italic=true;
textFormatBPreplay2.size=22;
var textFormatBPreplay3:TextFormat=new TextFormat();
textFormatBPreplay3.font="BPreplay";
textFormatBPreplay3.italic=true;
textFormatBPreplay3.bold=true;
textFormatBPreplay3.size=22;
var textFieldBPreplay0:TextField=new TextField();
textFieldBPreplay0.embedFonts=true;
textFieldBPreplay0.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldBPreplay0.defaultTextFormat=textFormatBPreplay0;
textFieldBPreplay0.selectable=false;
textFieldBPreplay0.autoSize=TextFieldAutoSize.LEFT;
textFieldBPreplay0.x=30;
textFieldBPreplay0.y=90;
textFieldBPreplay0.text=str0;
var textFieldBPreplay1:TextField=new TextField();
textFieldBPreplay1.embedFonts=true;
textFieldBPreplay1.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldBPreplay1.defaultTextFormat=textFormatBPreplay1;
textFieldBPreplay1.selectable=false;
textFieldBPreplay1.autoSize=TextFieldAutoSize.LEFT;
textFieldBPreplay1.x=30;
textFieldBPreplay1.y=120;
textFieldBPreplay1.text=str1;
var textFieldBPreplay2:TextField=new TextField();
textFieldBPreplay2.embedFonts=true;
textFieldBPreplay2.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldBPreplay2.defaultTextFormat=textFormatBPreplay2;
textFieldBPreplay2.selectable=false;
textFieldBPreplay2.autoSize=TextFieldAutoSize.LEFT;
textFieldBPreplay2.x=30;
textFieldBPreplay2.y=150;
textFieldBPreplay2.text=str2;
var textFieldBPreplay3:TextField=new TextField();
textFieldBPreplay3.embedFonts=true;
textFieldBPreplay3.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldBPreplay3.defaultTextFormat=textFormatBPreplay3;
textFieldBPreplay3.selectable=false;
textFieldBPreplay3.autoSize=TextFieldAutoSize.LEFT;
textFieldBPreplay3.x=30;
textFieldBPreplay3.y=180;
textFieldBPreplay3.text=str3;
addChild(textFieldBPreplay0);
addChild(textFieldBPreplay1);
addChild(textFieldBPreplay2);
addChild(textFieldBPreplay3);
var str4:String="Tahoma system font embedded, 10px, advanced anti-alising";
var str5:String="Tahoma system font embedded, 10px, NO advanced anti-alising";
var textFormatTahoma0:TextFormat=new TextFormat();
textFormatTahoma0.font="Tahoma";
textFormatTahoma0.size=10;
var textFormatTahoma1:TextFormat=new TextFormat();
textFormatTahoma1.font="TahomaNoAdvancedAA";
textFormatTahoma1.size=10;
var textFieldTahoma0:TextField=new TextField();
textFieldTahoma0.embedFonts=true;
textFieldTahoma0.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldTahoma0.sharpness=250;
textFieldTahoma0.defaultTextFormat=textFormatTahoma0;
textFieldTahoma0.selectable=false;
textFieldTahoma0.autoSize=TextFieldAutoSize.LEFT;
textFieldTahoma0.x=30;
textFieldTahoma0.y=220;
textFieldTahoma0.text=str4;
var textFieldTahoma1:TextField=new TextField();
textFieldTahoma1.embedFonts=true;
textFieldTahoma1.defaultTextFormat=textFormatTahoma1;
textFieldTahoma1.selectable=false;
textFieldTahoma1.autoSize=TextFieldAutoSize.LEFT;
textFieldTahoma1.x=30;
textFieldTahoma1.y=232;
textFieldTahoma1.text=str5;
addChild(textFieldTahoma0);
addChild(textFieldTahoma1);
var str6:String="Expected to be Futura Condensed Medium typeface, " +
"but resulted in Futura (regular)";
var textFormatFutura:TextFormat=new TextFormat();
textFormatFutura.font="Futura";
textFormatFutura.size=18;
var textFieldFutura:TextField=new TextField();
textFieldFutura.embedFonts=true;
textFieldFutura.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldFutura.defaultTextFormat=textFormatFutura;
textFieldFutura.selectable=false;
textFieldFutura.autoSize=TextFieldAutoSize.LEFT;
textFieldFutura.x=30;
textFieldFutura.y=255;
textFieldFutura.text=str6;
addChild(textFieldFutura);
var str7:String="TextFormat.font=\"Trebuchet MS\" fontFamily=\"Trebuchet MS Bold\"";
var textFormatTrebuchetMS:TextFormat=new TextFormat();
textFormatTrebuchetMS.font="Trebuchet MS";
textFormatTrebuchetMS.size=18;
var textFieldTrebuchetMS:TextField=new TextField();
textFieldTrebuchetMS.embedFonts=true;
textFieldTrebuchetMS.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldTrebuchetMS.defaultTextFormat=textFormatTrebuchetMS;
textFieldTrebuchetMS.selectable=false;
textFieldTrebuchetMS.autoSize=TextFieldAutoSize.LEFT;
textFieldTrebuchetMS.x=30;
textFieldTrebuchetMS.y=280;
textFieldTrebuchetMS.text=str7;
addChild(textFieldTrebuchetMS);
var textFormatPixel:TextFormat=new TextFormat();
textFormatPixel.font="Arial Unicode MS_9pt_st";
textFormatPixel.size=9;
var textFieldPix:TextField=new TextField();
textFieldPix.embedFonts=true;
textFieldPix.antiAliasType=flash.text.AntiAliasType.NORMAL;
textFieldPix.defaultTextFormat=textFormatPixel;
textFieldPix.y=210; textFieldPix.x=350;
textFieldPix.width=340;
textFieldPix.wordWrap=true;
textFieldPix.text="Bitmap font support is missing in Flex. This is WEIRD - small "+
"bitmap fonts are much easear to read than anti-aliased fonts. This font was " +
"created in Flash IDE, and embedded as an asset from swf file. Note the font" +
"name in summary below";
addChild(textFieldPix);
var textFieldStats:TextField=new TextField();
textFieldStats.embedFonts=true;
textFieldStats.antiAliasType=flash.text.AntiAliasType.ADVANCED;
textFieldStats.sharpness=400;
textFieldStats.defaultTextFormat=textFormatTahoma0;
textFieldStats.selectable=false;
textFieldStats.autoSize=TextFieldAutoSize.LEFT;
textFieldStats.multiline=true;
textFieldStats.x=30;
textFieldStats.y=310;
textFieldStats.htmlText="<font color=\"#216633\" face=\"BPreplay\" size=\"12\">" +
"<b>Embedded fonts summary:</b></font>\n"+getFontsListing();
addChild(textFieldStats);
}
private function getFontsListing():String {
var fontsListing:String="";
var fontArray:Array = Font.enumerateFonts(false);
fontArray.sortOn(['fontName']);
for(var i:int = 0; i < fontArray.length; i++) {
var thisFont:Font = fontArray[i];
fontsListing+=thisFont.fontName+ " " + thisFont.fontStyle +"\n";
}
return fontsListing;
}
private function makeBackground():void {
var rectCont:Sprite = new Sprite();
addChild(rectCont);
var matrix:Matrix = new Matrix();
matrix.createGradientBox(1, stage.stageHeight, (Math.PI/180)*90, 0, 00);
rectCont.graphics.beginGradientFill(GradientType.LINEAR,[0xB0C0C4,0xFFFFFF],
[1,1],[0,255],matrix);
rectCont.graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight);
}
}
}
Operating with embedded graphics and fonts of flash application during development is significant, since unique cross-browser (and cross-platform hopefully) look is one of key RIA/flashgame features. This article reviews font embedding for pure AS3 project, as it's the most universal way for embedding. Flashplayer uses device fonts for textfields by default. So if you specify the font property of TextFormat object, then the given font must be available on device where flash-application is running. If the preferable font is missing, default system font is used. You should embed the font to assure the font is displayed properly on any computer. Embedding gives some more advantages: font symbols can be rotated, fonts provide smoother playback when zooming, fonts are anti-aliased. The following font file types are supported by Mxmlc compiler for embedding:
- TrueType fonts (*.ttf);
- OpenType fonts (*.otf);
- TrueType Collections (*.ttc);
- Mac Data Fork Fonts (*.dfont);
- Mac Resource Fork TrueType Suitcases (don't have file extension).
The basic syntax for font embedding is (note that semicolon is not placed at the end of line):

9 responses
Do you want to comment?
Comments RSS and TrackBack Identifier URI ?
Trackbacks