• [ActionScript 3.0] 使用Embed在类中嵌入字体


     1 package
     2 {
     3     import flash.display.Sprite;
     4     import flash.text.Font;
     5     import flash.text.TextField;
     6     import flash.text.TextFormat;
     7     
     8     /**
     9      * @author Frost.Yen
    10      * @E-mail 871979853@qq.com
    11      * @create 2015-6-26 下午3:23:38
    12      *
    13      */
    14     [SWF(width="800",height="600")]
    15     public class EmbedFonts extends Sprite
    16     {
    17         /**
    18          *  •source 指定要嵌入的字体文件路径。还可以用 systemFont指定一个系统中安装的字体。这样的话就可以不需要 source参数了。
    19             •fontName 这个实际上就是 fontFamily 的别名。
    20             •embedAsCFF 如果不提供这个参数,默认就是true。所以,如果系统你嵌入的字体用于TextField,一定要将其设置为false。
    21             •unicodeRange 要嵌入的文本的范围。见下表:
    22             
    23             嵌入字体范围:
    24             •大写字符 U+0020,U+0041-U+005A
    25             •小写字符 U+0020,U+0061-U+007A
    26             •数字 U+0030-U+0039,U+002E
    27             •标点符号 U+0020-U+002F,U+003A-U+0040,U+005B-U+0060,U+007B-U+007E
    28             •基本拉丁字符 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
    29             •中文字符 U+3000-303F,U+3105-312C,U+31A0-31BF,U+4E00-9FAF,U+FF01-FF60,U+F900-FAFF,U+201C-201D,U+2018-2019,U+2014,U+2026,U+FFE5,U+00B7
    30             
    31             详细的可以找到你本机的 FlexSDK/frameworks/flash-unicode-table.xml。还可以参考Setting character ranges。
    32          */        
    33         [Embed(source="fonts/msyh.ttf",fontName="YaHei_font",embedAsCFF="false",mimeType="application/x-font",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,U+0020-U+002F,U+003A-U+0040,U+005B-U+0060,U+007B-U+007E,U+0030-U+0039,U+002E,U+0020,U+0061-U+007A,U+0020,U+0041-U+005A,U+3000-303F,U+3105-312C,U+31A0-31BF,U+4E00-9FAF,U+FF01-FF60,U+F900-FAFF,U+201C-201D,U+2018-2019,U+2014,U+2026,U+FFE5,U+00B7")] 
    34         private var _font:Class;
    35         public function EmbedFonts()
    36         {
    37             var fontArr:Array= Font.enumerateFonts(false);
    38             for each(var font:Font in fontArr)
    39             trace(font.fontName, font.fontType);
    40             //Font.registerFont(_font);//注册字体,如果在Embed字体的类中使用它,则不需要注册字体也可,上面的for each可以测试得知
    41             
    42             test();
    43         }
    44         private function test():void
    45         {
    46             var text:TextField = new TextField();
    47             text.width = 800;
    48             text.height = 600;
    49             text.selectable = false;
    50             text.wordWrap = true;
    51             
    52             var textFormat:TextFormat = new TextFormat();
    53             textFormat.font = "YaHei_font";
    54             textFormat.size = 24;
    55             textFormat.color = 0xff0000;
    56             text.appendText("0123456789
    ");
    57             text.appendText("abcdefghijklmnopqrstuvwxyz
    ");
    58             text.appendText("ABCDEFGHIJKLMNOPQRSTUVWXYZ
    ");
    59             text.appendText("今天很困难,明天更困难,后天很美好。但是绝大多数人死在了明天晚上,如果你不努力的话。
    ");
    60             text.appendText("水的清澈,並非因為它不含雜質,而是在於懂得沉澱;心的通透,不是因為沒有雜念,而是在於明白取捨。
    ");
    61             text.appendText("/ * + - @!#$%^&*()~><‘;、(*^__^*)O(∩_∩)O嗯!<( ̄ˇ ̄)/[]~( ̄▽ ̄)~*
    ");
    62             text.embedFonts = true;
    63             text.setTextFormat(textFormat);
    64             addChild(text);
    65             
    66             trace(toOxString("ˇ▽"));
    67         }
    68         /**
    69          * 返回16进制unicode码 
    70          * @param str 字符
    71          * @return 
    72          * 
    73          */        
    74         private function toOxString(str:String):String
    75         {
    76             var result:String="";
    77             var len:int=str.length;  
    78             for (var i:int=0; i < len; i++)  
    79             {  
    80                 result += "U+" + (str.charCodeAt(i)).toString(16);
    81                 if(i < len - 1)
    82                 {
    83                     result += ",";
    84                 }
    85             }
    86             return result;
    87         }
    88     }
    89 }
  • 相关阅读:
    C#.NET Winform 快速开发平台
    .Net C/S系统开发框架(楚楚原创)
    C# Winform 开发框架
    php导出excel表格超链接
    tp3使用PHPExcel 导出excel
    tp文件上传、表格转数组
    BUG修复记录
    tp3切库问题记录
    个人总结
    初识爬虫(番外篇-python)
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4602652.html
Copyright © 2020-2023  润新知