2010-02-26 20 views
9

C'è un modo per disegnare del testo in un DisplayObject o Shape usando solo ActionScript? L'unico modo che posso trovare sul web è creare un campo di testo, ma non posso aggiungere un TF a DisplayObject o Shape.Disegna testo sulla forma in ActionScript 3

Edit:

risolti grazie a viatropos.

Per chiunque che è interessato:

DisplayObject attua IBitmapDrawable che può essere passato come argomento della funzione draw di un oggetto BitmapData, che poi può essere disegnata utilizzando 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(); 

risposta

9

Buona domanda. Questo è al di là di qualsiasi cosa abbia mai avuto bisogno di fare, ma penso di sapere come farlo.

Shape estende DisplayObject, ma non DisplayObjectContainer, quindi non è possibile aggiungervi nulla. Ma è avere la proprietà graphics, quindi è possibile disegnare le cose in esso. Il modo migliore che riesco a pensare è di prendere un'istantanea Bitmap del TextField e disegnarla nella Shape. So che questo è ciò che Degrafa fa per il loro RasterText (date un'occhiata allo source, è davvero utile).

Se hai modificato la forma in uno Sprite, è molto più semplice. Sprite estende DisplayObjectContainer, quindi puoi aggiungere il tuo campo di testo lì.

Speranza che aiuti, Lance