2010-02-26 64 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。

希望有幫助, 蘭斯