flex 字体加载方式1
?flex加载嵌入式字体:
?1 先把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;}}
?fontName:字体名,调用的时候用的着
pixelFont1:生成的字体类,调用的时候用的着
用flex builder生成swf文件,FontAssets.swf
?
编写测试类:
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="initApp(event)"><mx:Script><![CDATA[import mx.events.FlexEvent;private function fontLoadComplete(e:Event):void{Font.registerFont(e.target.content["pixelFont1"]);txt1.setStyle("fontFamily","zhzFont1");}protected function initApp(event:FlexEvent):void{// TODO Auto-generated method stubloader.source="FontAssets.swf";loader.load();}]]></mx:Script><mx:SWFLoader id="loader" complete="fontLoadComplete(event)"/><mx:ProgressBar id="loadBar" source="loader" x="100" y="400" toolTip="加载了:{loadBar.percentComplete}%"/><mx:VBox><mx:Text id="txt1" text="test words" fontSize="50"/><mx:Text id="txt2" text="test words" fontSize="12"/></mx:VBox></mx:Application>?? 红色的部分是你在生成嵌入式字体时用到的。。。先在系统注册swf字体,然后txt1.setStyle("fontFamily","zhzFont1"); 调用。。。。
?
1 楼 qq123zhz 2010-11-05 总体就是先加载swf,然后注册字体。。。