flash as3 嵌入字体方法总结(二)
2012-10-18 12:15
288 查看
2.利用代码嵌入
运行显示所嵌入的字体:
生成的MyFont.swf,可以在项目预加载载入,以后项目的其他地方就可以直接用嵌入的字体
如:
var tlf :TextField = new TextField();
setFontByTextFormat(tlf,tlf.defaultTextFormat,"myMSYHFont");
该文本就使用嵌入的字体来显示,如显示的内容没有嵌入,则不显示
package { import flash.display.Sprite; import flash.text.Font; import flash.text.TextField; import flash.text.TextFormat; [SWF(width = 800,height = 600,backgroundColor = 0xffffff)] public class MyFont extends Sprite { /** * source="MSYH.TTF"--- 字体资源,路径 * fontName="myMSYHFont" ---- 字体自定义名称 * unicodeRange="" ---- 需要嵌入的字体,16进制unicode码,U+ 为前缀 */ [Embed(source="MSYH.TTF", fontName="myMSYHFont", unicodeRange="U+2a,U+2b,U+2d,U+2f,U+30-U+39,U+41-U+5a,U+61-U+7a,U+6597,U+5730,U+4e3b", mimeType="application/x-font" ,embedAsCFF="false")] public var myMSYHFontClass:Class;//微软雅黑 public function MyFont() { Font.registerFont(myMSYHFontClass);//注册字体 test(); } private function test():void { var tlf :TextField = new TextField(); tlf.width = 800; tlf.height = 600; tlf.selectable = false; tlf.wordWrap = true; var textFormat :TextFormat = new TextFormat(); textFormat.font = "myMSYHFont"; textFormat.size = 36; textFormat.color = 0xff0000; tlf.appendText( "0123456789\n"); tlf.appendText( "abcdefghijklmnopqrstuvwxyz\n"); tlf.appendText( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n"); tlf.appendText( "斗地主\n"); tlf.appendText( "/ * + -\n"); tlf.embedFonts = true; tlf.setTextFormat(textFormat); addChild(tlf); //返回16进制unicode码 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; } trace(toOxString("斗地主/*+-")); } } }
运行显示所嵌入的字体:
生成的MyFont.swf,可以在项目预加载载入,以后项目的其他地方就可以直接用嵌入的字体
/** *设置文本嵌入字体 * @param tlf 实例 * @param textFormat tlf的defaultFormat * @param fontName --- 嵌入的字体名称,如上面的"myMSYHFont" */ public static function setFontByTextFormat(tlf:TextField, textFormat :TextFormat, fontName :String):void { if(tlf == null || textFormat == null) { return; } textFormat.font = fontName; tlf.setTextFormat(textFormat); }
如:
var tlf :TextField = new TextField();
setFontByTextFormat(tlf,tlf.defaultTextFormat,"myMSYHFont");
该文本就使用嵌入的字体来显示,如显示的内容没有嵌入,则不显示
相关文章推荐
- flash as3 嵌入字体方法总结
- flash as3 嵌入字体方法总结(一)
- Flash字体嵌入方法总结—(1)基础篇
- Flash字体嵌入方法总结—(2)ActionScript基础篇
- Flash as3嵌入中文字体的方法
- Flash字体嵌入方法总结—(3)ActionScript提高篇
- Flash字体嵌入方法总结—(4)进阶篇
- Flash字体嵌入方法总结—(1)基础篇
- Flash Builder 嵌入字体方法总结
- Flex嵌入字体的方法(二)
- PPT嵌入字体的方法
- 网页嵌入自定义字体方法
- qt QTableView中嵌入复选框CheckBox 的四种方法总结
- 多终端WEB页面字体处理方法总结
- ppt嵌入字体的方法
- QTableView中嵌入复选框CheckBox 的四种方法总结
- Matlab,Visio等生成的图片的字体嵌入问题解决方法
- iOS中修改UITextField占位符字体颜色的方法总结
- Emacs字体设置方法总结
- css 使用@font-face 嵌入自定义字体或字体图标方法笔记