Flash as3嵌入中文字体的方法

 
因为没有服务器,而且flash版的字体还是调用客户端的字体,因而不得不把字体集成到flash里面,而大大地增加了Flash的大小,使得客户端加载起来速度非常慢,正因为如此我才放弃了这种做法。
因为最近要做一个项目,涉及到要输入文本,Flash的输入文本默认下是只能显示设备字体。连系统内的字体都不能设置,必须要嵌入才能输入。

as2的时代,可以用加载字体库的方式来解决,Adobe官方的解释太烦琐了,其实总结起来就是一个替换字体的过程,把外部库的自定义字体替换当前的输入字体。

例如如下:

如果是as2的话,新建一个Fla文件share.fla,然后在库里新建一个字体文件,然后设置他的标识为MyFont,随便选择系统内的一种字体,然后选择linkage里的导出as,导出runtime sharing,导出第一帧,然后在url处填写share.swf,然后编译成share.swf



然后新建主文件main.fla,同样在库里新建一个字体文件,然后设置他的url为share.swf,这样他就共享了share.swf里的字体文件,可以在场景里放一个textinput文件来做测试



这样嵌入字体的工作就完成了,as3文件不同的地方在于没有标识这个东西了,那我们在aa.swf(就是上面的share.swf)里设置Classname为自定义的字体名字zhr_font,然后在Main文件里也设置成zhr_font的ClassName







下面我们要说的是如何用程序来实现as3的中文动态嵌入加载,查了网上的一些资料,老外的做法是新建一个类,然后在类里直接embed这个font,然后最通过加载这个share.swf,然后反射出这个Font类,再注册一次使用,经试验,发现这样的做法英文是可以的,如果是中文,在编译share.swf的时候会报错

嵌入字体库文件类

{

     flash.display.Sprite;

     FontLibrary Sprite {

        [Embed(systemFont=’Bank Gothic’, fontName=’emBank Gothic’, mimeType=’application/x-font’)]
         BankGothicFont:Class;

    }

}

调用字体库文件类

loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest(”fontlibrary.swf”));

completeHandler(event:Event):void {
     FontLibrary:Class = event.target.applicationDomain.getDefinition(”FontLibrary”) as Class;
    Font.registerFont(FontLibrary.BankGothicFont);
tf:TextField = new TextField();
    tf.defaultTextFormat = new TextFormat(”emBank Gothic”, 12, 0);
    tf.embedFonts = ;
    tf.rotation = 15;
    tf.text = “blah blah blahnblah blah blahnblah blah blah “;
    addChild(tf);
}

这个是老外的做法,试验过后发现英文是可以没有问题的,但是如果是比较大的中文ttf,在嵌入字体库文件类那处就会有问题,mxmlc编译的时候会报错

这样我们的做法是,在Flash cs3里来做字体共享库,同样在库里新建一个字体



然后在主文件里加载,然后用反射的方法注册,再使用

var loader:Loader=new Loader;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.load(new URLRequest(”shared.swf”));
function completeHandler(event:Event):void {
var fontLibrary:Class=event.target.applicationDomain.getDefinition(”zhr_Font”) as Class;
trace(fontLibrary);
Font.registerFont(fontLibrary);
test();
}

function test() {
var _embeddedFonts:Array = new Array();
_embeddedFonts = Font.enumerateFonts(false);
trace(_embeddedFonts[0].fontName);
//trace(_embeddedFonts.length);
//var tx:TextField=new TextField();
//tx.type=”input”;
tx.embedFonts=true;
//tx.defaultTextFormat=new TextFormat(”zhr_Font”,20,0xFF0000);
var tf=new TextFormat(_embeddedFonts[0].fontName,20,0xFF0000);
//tx.embedFonts = true;
//tx.antiAliasType = AntiAliasType.ADVANCED;
tx.text=”你好”;
tx.setTextFormat(tf);
addChild(tx);
}
 
常用文字库
  1. `1234567890-=[]/;',./~!@#$%^&*()_+{}:"<>?qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM二三四六七零本日所下时的年区小可一图月全中我上个等台过人请版新方回第会元者都大比内用名水没即在件与和后太走前分买多各网加次带几你号单社为他最由有是爱先部更别性帖表成化男不数及了点行岁自服到将高您集专间码国入文界或之对率金馆以要系型原达站法书当园啊地机并女于能费出约来皆山种际语也好字子再被家场页气位这李外学今局百问车从就市而私非夹手给例长万着正同式史力共度省目期两何主条其已诚事室无此超曲还报商重编木向坐让笑得项氏东陈该美白类士组很业如班体十看物店未品土作节说至天帮做招但信受身面王级安刘只株见首线米生周心存张通发想光南路门火使又西象话道住展叶里谁五低双把每料代半色起量北京现查浪工免阶真科儿花总初进教星开均课电旧形员去海声转设春卖选银应动强快音校材便常需钱责研按则制吗群客因贸短像感族副它届院记风证热牌林处付华论剑秋理梦英才占近价层亿排创计饮称流定们谈顺票引建案头卡质保除送财街经基器注旅侧夏调额竞母备刊那联少著死资连知楼番波显公情州章雨神博写黄特篇口纸管明考城打岛倍片夜曾港税库闻奖仅马具右较孙讯评易栏言职反伤令赏却合权吧彩速礼食购屋相段观找空源求导邮左款指八获难江村务余千志香赵供背视阿利老若诸另森准差题档早租龙冬贴读病役讲直影装放修秒某深歌立民优游官农呢座访办交极鸟接朝世派防据平营赛争红必她广医试亲御幅程杨征听友足印活份远冰完负姿属券九技玩清值取任盘附含箱宝控收变预军仍意换户包严欧房纯胡厂术奇传尚味售词扣搞君改徐盖团石委销册筛环板揉富秀稿川犬提田末飞货赤域青整拿格容逆核久胜师解奥吃杯堂晚吴录古链队亚且酒鱼顷置雪桥割密列旬刚跟油划罗支关股干党命配顶卫画运搜测照简战凡套眼乐球欲拉维拍览许毛越康急标示刀尽福蓝佳司宁良状黑既底彼载袍企喘厅笔湖兼洋依留旦云治圣迎政角亦投叫精恋艺句府胸朱健持汤哪模样野算端键协轮推适参遭助寄离猫牛县横亮减边势产温酷独敲锻血松思智祝降议梁陆折永施细树升苏漫登驻杀境跳脱演满尾船往唐随须实块茶掉泰贵护布略甲郑纳架季结鞭判禽居虏致素床旨待藏断异增补根克造狂谢答席隐谷靠泉领肉景功秘忘破药规抗封育德微镇申损警皮武症衣魔狗舞步唱诗限软扒雅抢挂义切耳繁丽告斯圈冷丁退父范鬼峰确愿榜婚隆赚普宫餐草压拣壁咽落益央仆宋摘毒弱倒帐些穿望夫抓摩袋狐监订果湾错策河借赴竿爆弄典兴丸粉庆迷镜铃假谜杜淘芬妥脚巨阳究瑞批萍棍惜汉追棒怖播乳剧寺豪互寻郎裹汇嘉丰误纪唤故趣衬绿喜激竹决宏肤晨跑睁池乱尼露趴养啦娘玉毯铁竖梅仁麦脊宿吉威般塔齐轻酿遵拦渠迈蹦铅钟移勾吨停予鞋虚匙归静菜索跌鸡搅递认肌矮搂冲困厚响妻融窗柱怪众艘盟么窑痛液赢踪沙腔盛昏巴宵膜蒜薄灯探戴休禁谊铺瞎序承态浩揭兰输涨挪善井惊虫跨充复骨豆笋扁凭延荡积构拼恐仗芒钢荐巩介勇帘坊葱终呀辽炎秤统紫泼息喝逗狼瞧狭拨洗倚冠筋岸宅盒刻卷骡缘悉奋疑枣毅坏虎蹲窜慌烛熊续庭殿揪宜妹斗凯荷沈违攻宽螺航遇罪怜杰守骄翻仪哨哈雄暮兵审锤贝举丝魂砌庄歇填隶止脆诞碍散兽逝猪暂腊酸顽疆消津丹虽辣忽隙鲁灵珠欺棵宇叔怕侄冶什催莫闪竟挨始蓬汗渗栋害烧恒穴添患馅润橡替己胞眉享概圆泊洁似失猛献童滑筑拌岩乡念浅仙骤耐钥贩紧仔雷奸瘦潮腰阵疲针狸掌梳滥幻苦玻撕杆耗羽签哥胀然脸羞浇恶击茂锁糊废惑殊捞循赠舒棕够逮贺闸临颗邀肩烟捆宗塌贱祖劲劣艇残撇佛兄陶救混坛蜡酱饶饭痰挺检戏蚁煌呜币抱扰屑芝践锅锦舟湿扬透缸灿枯呼吹骆述摆伟嫂饰铜薯疮厉脑贷聚糖硬掠慢屠丘辆燃柳霉辨腾肆顿础嫌敢忙犯绝挽俊腿荣遍携锯纠喷羊拘偏虑练睡妙薪粒呈燥墙董粗搁哑孔蚀鸽抖乖宙寇隔缺敞固疤暴净塑孩瓶嫁哄继柏驳灰恩冤刮返译遣晶幸伐寿葡败颠识忧炒疯拒悔哲采阁顾浴乃幕捷伴促肠坟操哭效敏梢担渣卵谦析泡怠扇窃嚼暗朗浊兆娃辅乙射枪谅阀粪捏姓释蠢萝皇唯串帽燕稻振淡昼剥偷盗亭葬垒纱烘劈敌椒搏巧忍鹿鼻翅括况尿夺熔累摄乘吸旺乔霸爽汽渴希距稳滤洪鹅裕掩惹辉迹暑沾执寸妄蚕籍帅习围腹欠乒聪抵阴烤箭垮泛驾蒙革誓辱怀戚冈剂仓险昌弟忠织励浙捉姜逼柜渡嘴震详绘焦掏洞辈迅糟沸樱裤踏桂帝煮甘披澡托栽岗寨鲜鹰颤暖陪誉辟逃浓拳旗雾迫抽惠漏浮蹄讨钞蝶挑惧扩旱否铲缠疏懂棚洲弹谋翼撞辞途艳肝绢瓦济骗菌睛剃址卸罩稍爹摇恨墨寒麻脾贤瞒垦沟巷飘脂衡枝泽伶纵晴惩攀诉桑尤偶律胶肾扯胃腥夸仿勒叮苗烫瓣搬插彻勤茎胁训染桌桃伸兔熟伍袭枕泻囊孝芳驱甚慕渐毫宰勿孕皂挖毙搭塞刷骑舍柄惯奴诊碧淹汪骂钻援捧债姐蚊衔秃伪坚虹怒涉涛框吊痒旷弃倡羡缓召轧泥涂汁触罚符疫裙阅蝇磨溜映杏恰谱晋剖煎碎挤滴愁奶莲棉幼仇储萌匹欢旁辛蛙锈猴牧愈膏饿蒸煤埋屯蛇抚拖呆粮粥炉琴茅郊炼槐凉坝启肥缩昨鼠赶裂脏拜渔乌估鼓醒蛋闹猜祸棋冒堪灭泪宣觉铸溪欣摸描陡貌龟颜盈亩询矿桶弓倾丢蓄肚矛突凤醋祥疗滋哀咳闭掘朴慧径勺轨袜夕验臂絮授丧闲痕筝颂锋阔椅悦尊鞠饥牙扮扭敬芦邻涌勉孟吞危纹络垫陕肃炮植墓妈驰禾砍滚杂耍饼钳鸭伞尖奔傍赔赖窝绪沃擦跪葛迁舱惨巡俱甩嚷庸沿楚愚截凑塘黎邪皱爬筹柔慰择韵霞齿衰菊碰押绕绑爷爸历挡乎宴咱俯娱刑臭岭壳忆逢珍叉霜胖笼伯障蜜纷穷绣翁浑栗吼碗盲盐炭朋懒洽斜侍宪堤醉钩筐晕晒怎拆握候刺吵苹肢绩梨歪凳仰唇坦轰耻苍贡舰纺扶茄轿烂畅甜束躺袖遮抄扎滨拥撤傅丑堡卜肺倦壶颈蛾踢磁绵稠怨毕恭妇吓陷眯焰翠悟吐虾鉴跃驼锐避猎倘崖删喊趟贞贼宾疼厘泳侦躁谨犹粘篮稀旋斥嫩辩耀舌纽盏炊灌捡侨弊偿锡钉衫缝稼灾柴抬淋腐脉纤烈畜僵扫啄巾尝咬趋谣盯抛佩屡屈驶荒罐狠砖柿摊峡唉牵晓潜漂滩摔戒龄绒厨凝冻尘傲缴傻崇酬驴肿迟眨罢盾瓜爪械削丙娇堵喂诵遥笨劳亏掀悬榆斑剪躲饱肯烦槽悠昆洒剩廉喉坡赞匪毁妖辰鸣闯疾督劝庙橘污昂乏察堆蹈赌绳炸挣歼廊叹卧雕贯纲垂挥桐尸婆壮丛叠膝遗绞盼筒厦亡朵捐侵忌帆午陵芽裁覆穗狮培漠氧撒撑斤胆臣努劫泄扔悲捕逐雀蛮阻贫漆扑慈殖悼弯俗贪坑趁踩闷盆弦凶咸咏叛眠糕缎笛碑绸拾拔斩孤辜浸奉俩丈刃谎钓窄熄徒灶伏膨抹奏沉扛尺辫挎匠诱饺畏绍梯恼狱姥糠挠慎岂悄恳愤贿璃拢叼锣秆斧惰芹侮沫默葵拐杠雁拴厌蜂哗浆摧竭伙晃蛛锹耽牢艰桨歉嘱茧蔽锄姨躬允厕乞愧俭矩捎喇舅垄叙镰耕恢蕉涝榨犁鄙讽秩姑俘僚崭馋鹊饲裳朽慨屿牲魄聋炕岔雹惕脖惭帜茫匀蔬佣鸦膊秧愉膀萄滔碌狡膛蜻叨妨嗽蝴箩壤蚂姻婶僻蜓殃粱蔑菠袄匆吩圾榴牺馒嗓乓睬垃蜘晌猾溉胳咐囧 哦噢`1234567890-=[];’,。/~!·#¥%…—*()+{}|:“《》?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值