package
{
import flash.display.Sprite;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFormat; /**
* @author Frost.Yen
* @E-mail 871979853@qq.com
* @create 2015-6-26 下午3:23:38
*
*/
[SWF(width="800",height="600")]
public class EmbedFonts extends Sprite
{
/**
* •source 指定要嵌入的字体文件路径。还可以用 systemFont指定一个系统中安装的字体。这样的话就可以不需要 source参数了。
•fontName 这个实际上就是 fontFamily 的别名。
•embedAsCFF 如果不提供这个参数,默认就是true。所以,如果系统你嵌入的字体用于TextField,一定要将其设置为false。
•unicodeRange 要嵌入的文本的范围。见下表: 嵌入字体范围:
•大写字符 U+0020,U+0041-U+005A
•小写字符 U+0020,U+0061-U+007A
•数字 U+0030-U+0039,U+002E
•标点符号 U+0020-U+002F,U+003A-U+0040,U+005B-U+0060,U+007B-U+007E
•基本拉丁字符 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+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 详细的可以找到你本机的 FlexSDK/frameworks/flash-unicode-table.xml。还可以参考Setting character ranges。
*/
[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")]
private var _font:Class;
public function EmbedFonts()
{
var fontArr:Array= Font.enumerateFonts(false);
for each(var font:Font in fontArr)
trace(font.fontName, font.fontType);
//Font.registerFont(_font);//注册字体,如果在Embed字体的类中使用它,则不需要注册字体也可,上面的for each可以测试得知 test();
}
private function test():void
{
var text:TextField = new TextField();
text.width = 800;
text.height = 600;
text.selectable = false;
text.wordWrap = true; var textFormat:TextFormat = new TextFormat();
textFormat.font = "YaHei_font";
textFormat.size = 24;
textFormat.color = 0xff0000;
text.appendText("0123456789\n");
text.appendText("abcdefghijklmnopqrstuvwxyz\n");
text.appendText("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n");
text.appendText("今天很困难,明天更困难,后天很美好。但是绝大多数人死在了明天晚上,如果你不努力的话。\n");
text.appendText("水的清澈,並非因為它不含雜質,而是在於懂得沉澱;心的通透,不是因為沒有雜念,而是在於明白取捨。\n");
text.appendText("/ * + - @!#$%^&*()~><‘;、(*^__^*)O(∩_∩)O嗯!<( ̄ˇ ̄)/[]~( ̄▽ ̄)~*\n");
text.embedFonts = true;
text.setTextFormat(textFormat);
addChild(text); trace(toOxString("ˇ▽"));
}
/**
* 返回16进制unicode码
* @param str 字符
* @return
*
*/
private function toOxString(str:String):String
{
var result:String="";
var len:int=str.length;
for (var i:int=0; i < len; i++)
{
result += "U+" + (str.charCodeAt(i)).toString(16);
if(i < len - 1)
{
result += ",";
}
}
return result;
}
}
}

最新文章

  1. 基于pcDuino-V2的无线视频智能小车
  2. using语法糖详解 2015-01-06 17:45 50人阅读 评论(0) 收藏
  3. StormNimbus集群保证CAP流程
  4. Linux关于vm虚拟机复制后无法启动网卡
  5. 后缀数组(模板题) - 求最长公共子串 - poj 2774 Long Long Message
  6. WP8 独立存储 总结3(应用设置)
  7. uploadify IO Error/http error 413
  8. [原 -&gt; 砖] C# IEnumerable&lt;T&gt;泛型取值
  9. UIViewCotroller 的生命周期函数
  10. java 每天一练(二)
  11. Homebrew 1.0.0 发布,MacOS 上的包管理器
  12. Netty 5.0源码分析-ByteBuf
  13. setInterval()的时间参数无法随参数的变化而变化
  14. HDU 1715 大菲波数
  15. 在Mac OS X下使用Apache、PHP、MySQL、Netbeans、Yii
  16. 线程和进程PYTHON
  17. SparkException: Could not find CoarseGrainedScheduler or it has been stopped.
  18. springboot项目使用idea开启远程调试
  19. FMS Dev Guide学习笔记(远程共享对象)
  20. 遇到返回键会退到页面的问题(window.location)

热门文章

  1. UsePass &amp; GrabPass
  2. Java故障分析基础
  3. Boost::lexical_cast类型转换
  4. tornado异步请求非阻塞-乾颐堂
  5. Python爬虫入门五之URLError异常处理
  6. windows关闭/开启休眠命令行
  7. python str, list,tuple, dir
  8. OSG图形设备接口GraphicsContext
  9. 使用word写博客
  10. 跟我学习css3之transition