flash嵌入中文字体的方法

本文介绍了如何在Flash中嵌入中文字体,包括创建FontLibrary.fla文件,编写FontLibrary.as类来注册字体,以及在主程序中调用嵌入的字体文件。通过使用[Embed]元数据标签,可以嵌入系统字体或外部TTF字体,并通过Loader加载FontLibrary.swf以确保字体可用。完成这些步骤后,可以在文本字段中正常使用嵌入的中文字体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、建立FontLibrary.fla文件,在其文档类FontLibrary.as中写如下代码:package {
  import flash.text.Font;

public class FontLibrary extends Sprite {
  [Embed(systemFont="华文中宋", fontName="MyFont", unicodeRange="U+8f93,U+5165,U+6587,U+5b57", mimeType="application/x-font")]
  static public var MyClass : Class;

  public function FontLibrary() {
   Font.registerFont(MyClass); 
  }
}
}
   
  如果不是嵌入系统字体,而是嵌入外部路径的字体,则按照如下写:package {
  import flash.text.Font;

public class FontLibrary extends Sprite {
  [Embed(source="pages/simhei.ttf", fontName="MyFont", unicodeRange="U+8f93,U+5165,U+6587,U+5b57", mimeType="application/x-font")]
  static public var MyClass : Class;

  public function FontLibrary() {
   Font.registerFont(MyClass); 
  }
}
}
  
执行编译生成FontLibrary.swf
   
  2、调用嵌入的字体文件,在主程序中写如下代码:package{

import flash.display.MovieClip;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.text.TextFormat;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;

public class Main extends MovieClip{
  
  private var fontLoader:Loader;
  private var txtFmt:TextFormat;
  private var txtFld:TextField;
  
  public function Main(){
   
   fontLoader = new Loader();
   fontLoader.load(new URLRequest("FontLibrary.swf"));
   fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
  }
  
  private function completeHandler(e:Event):void{
   txtFmt=new TextFormat("MyFont",68,0x000000);
   txtFld=new TextField();
   txtFld.autoSize=TextFieldAutoSize.LEFT;
   txtFld.embedFonts=true;
   txtFld.text="显示中文";
   txtFld.setTextFormat(txtFmt);
   addChild(txtFld);
  }
}
}
  
可以去这个网页自动生成类代码 http://www.shengshiyouxi.com
  OK了!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值