0
点赞
收藏
分享

微信扫一扫

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 条评论