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

 

你可能感兴趣的:(.net,Flex,Flash,嵌入式,actionscript)