flex3中动态嵌入字体(避免加载字体库过大)

第一种方法是在css中嵌入中文字体,这种嵌入已经完成了注册

第二种也就是今天要提到的动态嵌入

一。创建自己的字体库:创建as类工程代码如下:(http://kevincao.com/app/font/)

package
{
 import flash.display.Sprite;

 public class myFontL extends Sprite
 {
  [Embed(systemFont="华文彩云", fontName="fwcwF", mimeType="application/x-font")]
   public var fw : Class;
   [Embed(systemFont="华文琥珀", fontName="fwhpF", mimeType="application/x-font")]
  public var fwhp : Class;
 }
}

编译后的swf文件就是我要用到的自定义字体库

二。将它添加到工程里面用swfloader加载他

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:SWFLoader id="loadFont" source="myFontL.swf" complete="loadF(event)"/>
 <mx:Script>
  <![CDATA[
   private function loadF(e:Event):void
   {
    Font.registerFont(e.target.content["fw"]);//注册字体
    Font.registerFont(e.target.content["fwhp"]);//注册字体
    t.setStyle("fontFamily","fwhpF");
   }
  ]]>
 </mx:Script>
 <mx:Text id="t" text="你好"/>
</mx:Application>
这就完成了字体的嵌入

原文地址:https://www.cnblogs.com/jsbrml/p/1985823.html