flex 字体加载方式3

 flex 加载方式3:通过actionScript加载,通过loader加载字体然后调用getDefinitionByName()获得字体Class,注册字体后,就可以用了。

 

 

package  {
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.LoaderContext;
	import flash.text.Font;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
	import flash.utils.getDefinitionByName;
	
	/**
	* 嵌入外部字体
	* @author PhoenixKerry(http://blog.sina.com.cn/yyy98)
	*/
	public class Main extends Sprite {
		private var textField:TextField;
		private var fontLoader:Loader;
		
		public function Main() {
			textField = new TextField();
			textField.selectable = false;
			textField.textColor = 0xFF0000;
			textField.autoSize = TextFieldAutoSize.LEFT;
			addChild(textField);
			
			fontLoader = new Loader();
			fontLoader.load(new URLRequest("./assets/game_font.swf"), new LoaderContext(false, loaderInfo.applicationDomain));
			fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFontCompleteHandler);
		}
		
		// 读取字体完成,通过 TextFormat 应用到 TextField 中的文字
		private function loadFontCompleteHandler(e:Event):void {
			fontLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadFontCompleteHandler);
			var alphaFitnessFontClazz:Class = getDefinitionByName("AlphaFitnessFont") as Class;
			
			Font.registerFont(alphaFitnessFontClazz);
			var alphaFitnessFont:Font = new alphaFitnessFontClazz() as Font;
			
			var textFormat:TextFormat = new TextFormat(alphaFitnessFont.fontName, 60, null, true);
			textField.defaultTextFormat = textFormat;
			textField.embedFonts = true;
			textField.text = "Hello, zhz!!!";
		}
		
	}
}

 

 /assets/game_font.swf:嵌入式字体swf地址

AlphaFitnessFont:swf字体类名

 

打包ttf为swf字体代码:

package
{
	import flash.display.Sprite;
	
	public class FontAssets extends Sprite
	{
		 [Embed(source="font/AlphaFitness.ttf",fontName="zhzFont1",mimeType="application/x-font")]
		 public var pixelFont1:Class;
		 
		 [Embed(source="font/WeibeiFont.ttf",fontName="zhzFont2",mimeType="application/x-font")]
		 public var pixelFont2:Class;
		 
		 [Embed(source="font/WindTailsFont.ttf",fontName="zhzFont3",mimeType="application/x-font")]
		 public var pixelFont3:Class;
		 
		 [Embed(source="font/YayaSimplifiedFont.ttf",fontName="zhzFont4",mimeType="application/x-font")]
		 public var pixelFont4:Class;
		 
		 [Embed(source="font/YegenyouSimplifiedFont.ttf",fontName="zhzFont5",mimeType="application/x-font")]
		 public var pixelFont5:Class;
	}
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值