在ActionScript 3中绘制形状文本

时间:2010-02-26 09:19:23

标签: flex actionscript-3 text shape displayobject

有没有办法只使用ActionScript在DisplayObject或Shape中绘制文本?我在网上找到的唯一方法是创建一个TextField,但我不能将TF添加到DisplayObject或Shape。

修改

感谢viatropos

对于任何有兴趣的人:

DisplayObject实现IBitmapDrawable,它可以作为参数传递给draw对象的BitmapData函数,然后可以使用graphics.beginBitmapFill绘制。

var textfield:TextField = new TextField;
textfield.text = "text";

var bitmapdata:BitmapData = new BitmapData(theWidth, theHeight, true, 0x00000000);
bitmapdata.draw(textfield);

graphics.beginBitmapFill(bitmapdata);
graphics.drawRect(0, 0, theWidth, theHeight);
graphics.endFill();

1 个答案:

答案 0 :(得分:9)

好问题。这超出了我需要做的任何事情,但我想我知道该怎么做。

Shape扩展DisplayObject,但不扩展DisplayObjectContainer,因此您无法向其添加任何内容。但它 具有graphics属性,因此您可以将内容绘制到其中。我能想到的最好的方法是获取TextField的Bitmap快照,并将其绘制到Shape中。我知道这是德格拉法为他们RasterText所做的事情(查看source,这真的很有帮助。)

如果你将Shape改为Sprite,那就容易多了。 Sprite扩展了DisplayObjectContainer,因此您可以在那里添加TextField。

希望有所帮助, 兰斯