原文地址:http://www.insideria.com/2009/03/flash-text-engine.html 作者:Veronique Brossier
TextBlock - 用于创建文本块(段落)的集合,不是显示对象
textLine - TextBlock的一行,是显示对象
contentElement - 放入TextBlock的内容(文本TextElement ,图像GraphicElement,文本图像组合GroupElement)
ElementFormat - 定义contentElement的格式
fontDescription - 定义应用与elementFormat的字体的样式
这是一个使用例子:
import flash.text.engine.*;
var fd:FontDescription = new FontDescription();
var ef:ElementFormat = new ElementFormat(fd);
var te:TextElement = new TextElement("Hello world", ef);
var ge:GraphicsElement = new GraphicsElement(shape, shape.width,shape.height,ef);
var v:Vector.<ElementContent> = new Vector.<ElementContent>();
v.push(te,ge);
var group:GroupElement = new GroupElement(v);
var tb:TextBlock = new TextBlock();
tb.content = group;
var tl:TextLine = tb.createTextLine(null, 200);
addChild(tl);
FontDescription
通过fontDescription可以定义字体样式,对于设备字体,可以设置 fontPosture 和 bold fontWeight.对于嵌入字体,利用 CFF 呈现,可通过小尺寸获得高品质的字体呈现.
这段代码显示你计算机中的字体:
import flash.text.Font;
import flash.text.engine.FontDescription;
// 设备字体
var myFonts:Array = Font.enumerateFonts(true);
for (var i:int = 0; i < myFonts.length; i++) {
if (myFonts[i].fontType == "device") {
trace("I am a device font and my name is", myFonts[i].fontName);
}
}
// 嵌入字体
var myEmbeddedFonts:Array = Font.enumerateFonts(false);
var f:Font = myEmbeddedFonts[0];
trace(FontDescription.isFontCompatible(f.fontName, "normal", "normal"));
trace(FontDescription.isFontCompatible(f.fontName, "bold", "normal"));
trace(FontDescription.isFontCompatible(f.fontName, "normal", "italic"));
fontDescription应用于最初的elementFormat对象然后锁定,必须创建fontDescription对象的副本才能够被改变:
import flash.text.engine.*;
import flash.text.Font;
var fd = new FontDescription("PALAT
很多人在写页面代码时都会遇到过这样一个问题,那就是当Flash与页面中的其它HTML结构有重叠的时候,默认情况下Flash总是显示在最上面,从而遮挡住了与它有重叠部分的HTML结构,就算为该Flash或是HTML结构标签定义z-index属性却依然是无效的。
因为默认情况下在网页中添加的Flash在浏览器中是以窗口模式 ......