2010-02-26 100 views
9

是否有任何方法仅使用ActionScript在DisplayObject或Shape中绘制文本?我可以在网上找到的唯一方法是创建一个TextField,但我不能将TF添加到DisplayObject或Shape。在ActionScript 3中绘制形状文字

编辑:

解决由于viatropos

对于任何这是感兴趣的:其可以作为参数传递给一个BitmapData对象,然后可以使用graphics.beginBitmapFill绘制的draw功能被传递

DisplayObject实现IBitmapDrawable

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(); 

回答

9

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

Shape扩展了DisplayObject,但不是DisplayObjectContainer,所以你不能添加任何东西。但它确实graphics属性,所以你可以画东西进去。我能想到的最佳方式是获取TextField的Bitmap快照,并将其绘制到Shape中。我知道这是Degrafa为他们的RasterText做的(请查看source,这真的很有用)。

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

希望有帮助, 兰斯