加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex 字体加载方式3

发布时间:2020-12-15 03:53:03 所属栏目:百科 来源:网络整理
导读:?flex 加载方式3:通过actionScript加载,通过loader加载字体然后调用getDefinitionByName()获得字体Class,注册字体后,就可以用了。 ? ? package {import flash.display.Loader;import flash.display.Sprite;import flash.events.Event;import flash.net.U

?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;
	}
}
?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读