WEB开发网
开发学院图形图像Flash 在flash as3中使用嵌入字体embedFonts 阅读

在flash as3中使用嵌入字体embedFonts

 2009-01-04 19:17:38 来源:WEB开发网   
核心提示:Flash一直对字体渲染支持不好,特别是中文,在flash as3中使用嵌入字体embedFonts,存在锯齿、模糊、失真等等问题,而且系统的字体不能旋转,如果在本文件内使用,可以不注册,不能设置alpha(作为bitmap处理除外),因此在有些时候

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

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

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

在使用字体之前,最好使用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 = new Loader();
//加载字体库
l.load(new 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 = new TextFormat();
tf.font = a[0].fontName;
t.embedFonts = true;
t.text = ‘asdas dasdas’;
t.setTextFormat(tf);
//
//
//使用StyleSheet设置字体
var CSS:StyleSheet = new StyleSheet();
css.setStyle(’.font’,{fontFamily:a[1].fontName});
//
t1.embedFonts = true;
t1.styleSheet = css;
t1.htmlText = ‘<p class=”font”>asdas dasdas</p>’;
//
}

Tags:flash as 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接