flex上嵌入字體swf

已經被這個問題困擾有一段時間,今天終於解放拉。之前看壺一些相關文章不過都是似非中意,今天綜合外文網終於搞定以供參詳:
  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拉!怎么樣,簡單吧!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值