FontLoader 2外部调用swf字体嵌入类

如果想对SWF中的动态文本应用非系统的字体,方法当然是在本身的SWF中嵌入相应的字体,另外一种方法是把字体嵌入到另外的SWF中,当需要对应的字体时,把这个SWF载入,并引用相应的字体。FontLoader是一个字体载入类,它帮助你实现这个过程。

dome演示: [url]http://etcs.ru/pre/FontLoaderDemo/[/url]

用法,假设把字体编译在fonts.swf中:

程序代码

var _loader:FontLoader = new FontLoader();
_loader.load( new URLRequest( 'fonts.swf') );

载入完成后,可以引用字体:

程序代码

var fonts = _loader.fonts;
var tf:TextFormat = new TextFormat(fonts[0].fontName, 20);

示例:

程序代码

//加载http://vintage.etcs.ru/newkernel.swf中的字体;
const _LOADER:FontLoader = new FontLoader();
const _FIELD:TextField = new TextField();

function init():void {
_FIELD.embedFonts = true;
_FIELD.autoSize = TextFieldAutoSize.LEFT;
_FIELD.rotation = 45;
_FIELD.x = 150;
_FIELD.y = 150;
_FIELD.border = true;
_FIELD.antiAliasType = AntiAliasType.ADVANCED;
addChild(_FIELD);
_LOADER.addEventListener(Event.COMPLETE, handler_complete);
_LOADER.addEventListener(ProgressEvent.PROGRESS, handler_progress);
_LOADER.load(new URLRequest("[url]http://vintage.etcs.ru/newkernel.swf[/url]"));
}
function handler_progress(evt:ProgressEvent):void {
var percent:int=100*evt.bytesLoaded/evt.bytesTotal;
trace("loading:"+percent+"%");
}
function handler_complete(evt:Event):void {
var fonts:Array = _LOADER.fonts;
for each (var font:Font in fonts) {
var text:String = font.fontName;
var tf:TextFormat = new TextFormat(font.fontName, 20);
switch (font.fontStyle) {
case FontStyle.BOLD :
tf.bold = true;
break;
case FontStyle.BOLD_ITALIC :
tf.bold = true;
tf.italic = true;
break;
case FontStyle.ITALIC :
tf.italic = true;
break;
}
_FIELD.appendText(text+"\n");
_FIELD.setTextFormat(tf, _FIELD.length-text.length-1, _FIELD.length);
}
}

init();

fonts.swf中建立字库步骤:
在library库中右键建立新字型,并加入linkage链接在第一帧导出,运行导出swf即可!

注意:中文字体太大,请慎重考虑使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值