有没有办法只使用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();
答案 0 :(得分:9)
好问题。这超出了我需要做的任何事情,但我想我知道该怎么做。
Shape扩展DisplayObject,但不扩展DisplayObjectContainer,因此您无法向其添加任何内容。但它 具有graphics
属性,因此您可以将内容绘制到其中。我能想到的最好的方法是获取TextField的Bitmap快照,并将其绘制到Shape中。我知道这是德格拉法为他们RasterText所做的事情(查看source,这真的很有帮助。)
如果你将Shape改为Sprite,那就容易多了。 Sprite扩展了DisplayObjectContainer,因此您可以在那里添加TextField。
希望有所帮助, 兰斯