11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 2112|回复: 2
上一主题 下一主题

[字符串 & 字符编码 & 字体] 使用嵌入的字体,以及加载外部字体的方法

[复制链接] TA的其它主题
发表于 2020-4-18 22:41:58 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 TKCB 于 2020-4-18 23:02 编辑

转载:博客园
作者:Winco

网址:https://www.cnblogs.com/atong/archive/2013/02/05/2892640.html



1、建立FontLibrary.fla文件,在其文档类FontLibrary.as中写如下代码:

[Actionscript3] 纯文本查看 复制代码
package { 
    import flash.text.Font; 
 
    public class FontLibrary extends Sprite { 
        [Embed(systemFont="华文中宋", fontName="MyFont", unicodeRange="U+8f93,U+5165,U+6587,U+5b57", mimeType="application/x-font")] 
        static public var MyClass : Class; 
 
        public function FontLibrary() { 
            Font.registerFont(MyClass);  
        } 
    } 
}


如果不是嵌入系统字体,而是嵌入外部路径的字体,则按照如下写:
[Actionscript3] 纯文本查看 复制代码
package { 
    import flash.text.Font; 
 
    public class FontLibrary extends Sprite { 
        [Embed(source="pages/simhei.ttf", fontName="MyFont", unicodeRange="U+8f93,U+5165,U+6587,U+5b57", mimeType="application/x-font")] 
        static public var MyClass : Class; 
 
        public function FontLibrary() { 
            Font.registerFont(MyClass);  
        } 
    } 
}

执行编译生成FontLibrary.swf


2、调用嵌入的字体文件,在主程序中写如下代码:
[Actionscript3] 纯文本查看 复制代码
package{ 
     
    import flash.display.MovieClip; 
    import flash.display.Loader; 
    import flash.events.Event; 
    import flash.net.URLRequest; 
    import flash.text.TextFormat; 
    import flash.text.TextField; 
    import flash.text.TextFieldAutoSize; 
 
    public class Main extends MovieClip{ 
         
        private var fontLoader:Loader; 
        private var txtFmt:TextFormat; 
        private var txtFld:TextField; 
         
        public function Main(){ 
             
            fontLoader = new Loader(); 
            fontLoader.load(new URLRequest("FontLibrary.swf")); 
            fontLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); 
        } 
         
        private function completeHandler(e:Event):void{ 
            txtFmt=new TextFormat("MyFont",68,0x000000); 
            txtFld=new TextField(); 
            txtFld.autoSize=TextFieldAutoSize.LEFT; 
            txtFld.embedFonts=true; 
            txtFld.text="显示中文"; 
            txtFld.setTextFormat(txtFmt); 
            addChild(txtFld); 
        } 
    } 
}


可以去这个网页自动生成类代码 http://kevincao.com/app/font/


TKCB还有一个关于外部加载SWF的小练习:http://www.11ria.com/forum.php?mod=viewthread&tid=2541

评分

参与人数 1银子 +10 贡献 +1 收起 理由
TKCB + 10 + 1 11RIA 闪客社区,就是这么专业

查看全部评分

发表于 2020-4-18 22:43:36 | 显示全部楼层
【11RIA 闪客社区,评分公示】:
是否有价值:一般(银子 +10  贡献 +1)
是否原创:否
是否翻译:否
如对自己的评分有疑问,则咨询版主、管理员等。
回复

使用道具 举报

发表于 2020-4-23 15:17:28 | 显示全部楼层
这个方法好像不行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表