已經被這個問題困擾有一段時間,今天終於解放拉。之前看壺一些相關文章不過都是似非中意,今天綜合外文網終於搞定以供參詳:
1,首先在flex上新建ActionScript Project工程,用於生成swf字體文件。
字體文件as
代碼如下
package { import flash.display.Sprite; import flash.text.Font; import flash.system.Security; public class ArialNarrow extends Sprite { /** * Embed the fonts in all of their different variations that we want to have accessible. * Remeber that bold is a 'fontWeight' and italic is a 'fontStyle'. * The unicode range is the basic Latin 1 character set. */ [Embed(source='font/TIMES.TTF', fontFamily='Arial Narrow', fontName='Arial Narrow', fontWeight="normal", mimeType="application/x-font-truetype", unicodeRange='U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E')] public static var ArialNarrow:Class; [Embed(source='font/timesbd.ttf', fontFamily='Arial Narrow', fontName='Arial Narrow', fontWeight="bold", unicodeRange='U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E')] public static var ArialNarrowBold:Class; [Embed(source='font/timesi.ttf', fontFamily='Arial Narrow', fontName='Arial Narrow', fontStyle='italic', unicodeRange='U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E')] public static var ArialNarrowItalic:Class; [Embed(source='font/timesbi.ttf', fontFamily='Arial Narrow', fontName='Arial Narrow', fontWeight="bold", fontStyle='italic', unicodeRange='U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E')] public static var ArialNarrowBoldItalic:Class; public function ArialNarrow() { super(); Security.allowDomain("*"); registerFonts(); } /** * Flash keeps a table of fonts available for embedding. * In order to let Flash know that we have loaded a new font * available for embedding, we need to register that font's class reference * with the Font class. * */ public function registerFonts():void{ Font.registerFont(ArialNarrow) Font.registerFont(ArialNarrowBold) Font.registerFont(ArialNarrowItalic) Font.registerFont(ArialNarrowBoldItalic) } } }
對於字體ttf文件隨便從系統中拉一套字體出來,(注意備份)。運行成swf文件
第二步: 在另一個要調用的主程序中使用也就是導入swf文件.
private function fontLoadArialNarrowComplete(evt:Event):void
{
try {
txt2.setStyle("fontFamily","Arial Narrow");
}
catch(e:Error){
trace(e.toString());
}
}
<Label y="20" text="labelggggtttttt" id="txt2"/>
<SWFLoader x="-10" width="0" height="0" source="ArialNarrow.swf" creationComplete="fontLoadArialNarrowComplete(event)" visible="false"/>
一切就OK拉!怎么樣,簡單吧!