|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
AdobeFlashPlayerforIE是IE浏览器专用的flash播放器插件,可以播放AdobeFlash制作的flash文件。
由于比来要做一个项目,触及到要输出文本,Flash的输出文本默许下是只能显现设备字体。结合统内的字体都不克不及设置,必需要嵌进才干输出。
as2的时期,能够用加载字体库的体例来办理,Adobe官方的注释太啰嗦了,实在总结起来就是一个交换字体的历程,把内部库的自界说字体交换以后的输出字体。
比方以下:
假如是as2的话,新建一个Fla文件share.fla,然后在库里新建一个字体文件,然后设置他的标识为MyFont,任意选择体系内的一种字体,然后选择linkage里的导出as,导出runtimesharing,导出第一帧,然后在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的时分会报错
嵌进字体库文件类
package{
importflash.display.Sprite;
publicclassFontLibraryextendsSprite{
[Embed(systemFont=’BankGothic’,fontName=’emBankGothic’,mimeType=’application/x-font’)]
publicstaticvarBankGothicFont:Class;
}
}
挪用字体库文件类
varloader:Loader=newLoader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.load(newURLRequest(”fontlibrary.swf”));
privatefunctioncompleteHandler(event:Event):void{
varFontLibrary:Class=event.target.applicationDomain.getDefinition(”FontLibrary”)asClass;
Font.registerFont(FontLibrary.BankGothicFont);
vartf:TextField=newTextField();
tf.defaultTextFormat=newTextFormat(”emBankGothic”,12,0);
tf.embedFonts=true;
tf.rotation=15;//todemonstratetheembedworked
tf.text=“blahblahblahnblahblahblahnblahblahblah“;
addChild(tf);
}
这个是老外的做法,实验事后发明英文是能够没有成绩的,可是假如是对照年夜的中文ttf,在嵌进字体库文件类那儿那边就会有成绩,mxmlc编译的时分会报错
如许我们的做法是,在Flashcs3里来做字体共享库,一样在库里新建一个字体
然后在主文件里加载,然后用反射的办法注册,再利用
varloader:Loader=newLoader;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
loader.load(newURLRequest(”shared.swf”));
functioncompleteHandler(event:Event):void{
varfontLibrary:Class=event.target.applicationDomain.getDefinition(”zhr_Font”)asClass;
trace(fontLibrary);
Font.registerFont(fontLibrary);
test();
}
functiontest(){
var_embeddedFonts:Array=newArray();
_embeddedFonts=Font.enumerateFonts(false);
trace(_embeddedFonts[0].fontName);
//trace(_embeddedFonts.length);
//vartx:TextField=newTextField();
//tx.type=”input”;
tx.embedFonts=true;
//tx.defaultTextFormat=newTextFormat(”zhr_Font”,20,0xFF0000);
vartf=newTextFormat(_embeddedFonts[0].fontName,20,0xFF0000);
//tx.embedFonts=true;
//tx.antiAliasType=AntiAliasType.ADVANCED;
tx.text=”你好”;
tx.setTextFormat(tf);
addChild(tx);
}
Flash特别适用于创建通过Internet提供的内容,因为它的文件非常小。Flash是通过广泛使用矢量图形做到这一点的。 |
|