flash嵌入字体:在flash as3中使用嵌入字体embedFonts

  flash直对字体渲染支持不好特别是中文存在锯齿、模糊、失真等等问题而且系统字体不能旋转不能设置alpha(作为bitmap处理除外)因此在有些时候就不得不考虑使用嵌入字体

  使用的前必须定义字体类在library面板选择新建字体( font)为新建字体设置链接制定Class这个Class就要要注册字体类比如你为你新建字体Class设置为Comic 下面代码就外这种字体注册到全局字体库里面:Font.registerFont(Comic); 这样就可以在本文件或者所有加载这个文件使用这种字体了

  在flash as3中使用嵌入字体有两种方式种是通过TextFormat.font属性设置另外种通过StyleSheet设置样式文本使用来应用

  在使用字体的前最好使用Font.enumerateFonts;得到字体fontName来用有些字体名字跟看到特别是只用粗体和斜体时候

  使用这两种思路方法前都要设置文本embedFonts = true;这样文本就会按照嵌入字体进行渲染

  效果:

  embedFonts

  源文件:

  embedFonts.rar

  具体使用代码:

//———————————————————————–
//使用嵌入字体
//Arial
//var a = Font.enumerateFonts;
//trace(a[0].fontName);
//
//Font.registerFont(Arial);
//a = Font.enumerateFonts;
//trace(a);
//trace(a[0].fontName);
//trace(a[1].fontName);
//把库里面字体注册到全局字体库里面如果在本文件内使用可以不注册但是如果作为字体库供其他文件必须要注册到全局
//Font.registerFont(Birch);
//
var l:Loader = Loader;
//加载字体库
l.load( URLRequest(’fontlib.swf’));
l.contentLoaderInfo.addEventListener(’complete’,lc);
//
function lc(e)
{
//获取嵌入字体
var a = Font.enumerateFonts;
trace(a);
//嵌入字体名字
trace(a[0].fontName);
trace(a[1].fontName);
//使用TextFormat.font设置字体
var tf:TextFormat = TextFormat;
tf.font = a[0].fontName;
t.embedFonts = true;
t.text = ‘asdas dasdas’;
t.TextFormat(tf);
//
//
//使用StyleSheet设置字体
var css:StyleSheet = StyleSheet;
css.Style(’.font’,{fontFamily:a[1].fontName});
//
t1.embedFonts = true;
t1.styleSheet = css;
t1.htmlText = ‘<p =”font”>asdas dasdas</p>’;
//
}


Tags:  flashas3 embedfonts flash不嵌入字体 flash嵌入字体

延伸阅读

最新评论

发表评论