您的位置:首页 > 其它

每天学一点flash(68)FTE文本引擎(一)

2010-06-17 14:53 513 查看
在cs4之后,as3增加FTE 的文本引擎,功能比较强大,在应用的时候能够解决上一代文本未能解决的问题。简单的功能说明可以参考官方开发指南,在哪里已经讲得很详细了。文本引擎类库比较多,看起来有点吃力,有一些类库是枚举类,可以看着是属性设置一样,常用的类包括

TextBlock,TextLine,ElementFormat GraphicElement 等类。这些类有一些是继承了容器类的,有一些则是一个单独的类



创建文本的时候,可以如下的方法:这个方法和官方文档是一样的。



import flash.text.engine.TextBlock;
import flash.text.engine.TextElement;
import flash.text.engine.ElementFormat;
import flash.text.engine.BreakOpportunity;

var str :String="欢迎你到这里,你已经掌握了一种独到武学招式了";
var format:ElementFormat = new ElementFormat();
format.color=0xff0000;//设计颜色
format.alpha=0.5; //文本透明度
format.fontSize=20;//字体大小
 
var textElement:TextElement = new TextElement(str, format);

var textBlock:TextBlock = new TextBlock();
textBlock.content = textElement;

var textLine:TextLine = textBlock.createTextLine(null, 450);
addChild(textLine);
textLine.x = 45;
textLine.y = 20;


创建一个带透明度的文本,颜色为红色,大小为20的







最简单的形式。ElementFormat 和TextFormat 差不多的,设置文本的格式,包括常见的字体大小,颜色,透明度,还有间距等等





设置它们角度:format.textRotation=TextRotation.ROTATE_90;则可以变成下面的情况.在过去的旋转文本的时候TextField是存在一些问题,需要嵌入字体或者采用位图的办法可以解决动态文本旋转的问题。在10.0之后这种引擎后,可以有一个方案来解决这些情况。















这个引擎当中,可以轻松嵌入图形进去,使用GraphicElement 这个类实现图形创建。







通过我们QQ表情来实现图文混排的情况。

通过库连接进行连接,调用的时候就new Face();







import flash.text.engine.TextBlock;
import flash.text.engine.TextElement;
import flash.text.engine.ElementFormat;
import flash.text.engine.BreakOpportunity;
import flash.text.engine.GraphicElement;
import flash.text.engine.ContentElement;
import flash.text.engine.GroupElement;

var str:String="欢迎你到这里,你已经掌握了一种独到武学招式了";
var format:ElementFormat = new ElementFormat();
format.color=0xff0000;//设计颜色
//format.alpha=0.5; //文本透明度
format.fontSize=20;//字体大小
//format.textRotation=TextRotation.ROTATE_180;

//创建图形
var face:Face=new Face();
var face2:Face=new Face();

var graphA:GraphicElement=new GraphicElement(face,face.width,face.height,format);
var graphB:GraphicElement=new GraphicElement(face2,face2.width,face2.height,format);

var textElement:TextElement=new TextElement(str,format);
var group:Vector.<ContentElement>=new Vector.<ContentElement>();
group.push(graphA,textElement,graphB);

//创建组
var groupElement:GroupElement=new GroupElement(group);

var textBlock:TextBlock = new TextBlock();
textBlock.content=groupElement;

var textLine:TextLine=textBlock.createTextLine(null,550);
addChild(textLine);
textLine.x=45;
textLine.y=100;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: