转自:http://www.lite3.cn/blog/?p=559
首先在新建个fla命名为font.fla, Ctrl+L 调出库面板.
右键点击库面板的空白处,新建字体.... 调出 字体元件属性 窗口.
选择要嵌入的字体, 并选择为ActionScript 导出. 填入自己的类名.
确定并Ctrl+Enter 导出 font.swf
OK,字体库已经准备就绪了,下面是应用篇
下面是应用篇的为文档类.
提示:
- Font.registerFont(MyFont); 注册全局字体
- new TextFormat(myFont.fontName); 应用字体
- txt.embedFonts = true; 设置嵌入字体
以上3条必须同时用到才OK的.

package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.system.LoaderContext;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.getDefinitionByName;
/**
* lite3@qq.com
* www.lite3.cn
* @author lite3
*/
[SWF(width=600, height=50)]
public class EmbedFontDemo extends Sprite
{
private var txt:TextField;
private var fontLoader:Loader;
public function EmbedFontDemo():void
{
txt = new TextField();
txt.x = 50;
txt.y = 10;
txt.width = 500;
txt.height = 30;
txt.border = true;
txt.textColor = 0x0099FF;
addChild(txt);
fontLoader = new Loader();
fontLoader.load(new URLRequest("http://www.lite3.cn/assets/swf/embedFontDemo/font.swf"), new LoaderContext(false, loaderInfo.applicationDomain));
fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
fontLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}
private function progressHandler(e:ProgressEvent):void
{
var ratio:int = e.bytesLoaded / e.bytesTotal * 100;
txt.text = "loading... " + ratio + "%";
}
private function completeHandler(e:Event):void
{
fontLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
fontLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
trace("font coomplete!");
var MyFont:Class = getDefinitionByName("cn.lite3.font.Font_hyqytj") as Class;
// 注册全局字体
Font.registerFont(MyFont);
var myFont:Font = new MyFont() as Font;
// 应用字体
var format:TextFormat = new TextFormat(myFont.fontName, 25, null, true);
txt.defaultTextFormat = format;
// 嵌入字体
txt.embedFonts = true;
txt.text = "lite3 欢迎大家访问我的博客 www.lite3.cn";
}
}
}
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.system.LoaderContext;
import flash.text.Font;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.getDefinitionByName;
/**
* lite3@qq.com
* www.lite3.cn
* @author lite3
*/
[SWF(width=600, height=50)]
public class EmbedFontDemo extends Sprite
{
private var txt:TextField;
private var fontLoader:Loader;
public function EmbedFontDemo():void
{
txt = new TextField();
txt.x = 50;
txt.y = 10;
txt.width = 500;
txt.height = 30;
txt.border = true;
txt.textColor = 0x0099FF;
addChild(txt);
fontLoader = new Loader();
fontLoader.load(new URLRequest("http://www.lite3.cn/assets/swf/embedFontDemo/font.swf"), new LoaderContext(false, loaderInfo.applicationDomain));
fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
fontLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}
private function progressHandler(e:ProgressEvent):void
{
var ratio:int = e.bytesLoaded / e.bytesTotal * 100;
txt.text = "loading... " + ratio + "%";
}
private function completeHandler(e:Event):void
{
fontLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
fontLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
trace("font coomplete!");
var MyFont:Class = getDefinitionByName("cn.lite3.font.Font_hyqytj") as Class;
// 注册全局字体
Font.registerFont(MyFont);
var myFont:Font = new MyFont() as Font;
// 应用字体
var format:TextFormat = new TextFormat(myFont.fontName, 25, null, true);
txt.defaultTextFormat = format;
// 嵌入字体
txt.embedFonts = true;
txt.text = "lite3 欢迎大家访问我的博客 www.lite3.cn";
}
}
}
分类:
Flash 基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述