上次说了直接把字体嵌入到flex程序中的方法,这次写一下将字体编译成swf后供其它flex程序加载来调用的方法。
首先,新建一个actionscript的project,取名为FlexFont,将字体文件放到src/font目录下,主程序为 FlexFont.as文件,内容如下:
package {
import flash.display.Sprite;
public class FlexFont extends Sprite {
[Embed(source="font/adobehei.otf",fontName="AdobeHei",advancedAntiAliasing="true",mimeType="application/x-font")]
public var AdobeHei:Class;
}
}
编译project产生FlexFont.swf文件,到这里字体的swf文件已经编译完成。
然后,将生成的swf文件放到需要使用相应字体的flex程序目录下,在flex的Application中使用SWFLoader加载 FlexFont.swf,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
width="100%" height="100%" fontSize="20"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
private function initApp():void {}
private function fontLoadComplete(event:Event):void {
try {
Font.registerFont(event.target.content["AdobeHei"]);
txt.setStyle("fontFamily", "AdobeHei");
}
catch(e:Error){
trace(e.toString());
}
}
]]>
</mx:Script>
<mx:SWFLoader source="FlexFont.swf" complete="fontLoadComplete(event);"
width="0" height="0" includeInLayout="false" visible="false"/>
<mx:TextArea id="txt" width="300" height="300"/>
</mx:Application>
这时,TextArea的字体已经被设置为FlexFont中的AdobeHei了。
Flex嵌入字体的方法(二)
最新推荐文章于 2010-11-05 11:03:48 发布