您的位置:首页 > 其它

Flex嵌入字体的方法(二)

2009-11-27 16:05 357 查看
上次说了直接把字体嵌入到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了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: