加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:28:08 所属栏目:百科 来源:网络整理
导读:转帖自:http://www.6dn.cn/blog/article.asp?id=100 如果想对SWF中的动态文本应用非系统的字体,方法当然是在本身的SWF中嵌入相应的字体,另外一种方法是把字体嵌入到另外的SWF中,当需要对应的字体时,把这个SWF载入,并引用相应的字体。FontLoader是一个

转帖自:http://www.6dn.cn/blog/article.asp?id=100

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


dome演示: http://etcs.ru/pre/FontLoaderDemo/

用法,假设把字体编译在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(" http://vintage.etcs.ru/newkernel.swf"));
}
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即可!
注意:中文字体太大,请慎重考虑使用。
作者blog: http://etcs.ru/blog/as3/fontloader_2/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读