2010-02-26 18 views
9

¿Hay alguna forma de dibujar texto en un DisplayObject o Shape usando solo ActionScript? La única forma en que puedo encontrar en la web es creando un TextField, pero no puedo agregar un TF a DisplayObject o Shape.Dibujar texto en forma en ActionScript 3

Editar:

resueltos gracias a viatropos.

Para cualquiera que esté interesado:

DisplayObject implementa IBitmapDrawable que se pueden pasar como argumento a la función de un objeto drawBitmapData, que luego se puede extraer usando 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(); 

Respuesta

9

Buena pregunta. Esto está más allá de cualquier cosa que haya necesitado hacer, pero creo que sé cómo hacerlo.

La forma extiende DisplayObject, pero no DisplayObjectContainer, por lo que no puede agregar nada. Pero tiene tiene la propiedad graphics, por lo que puede dibujar cosas en él. Lo mejor que puedo pensar es tomar una instantánea de mapa de bits de TextField, y dibujar eso en la forma. Sé que esto es lo que hace Degrafa por su RasterText (echa un vistazo al source, es realmente útil).

Si cambiaste tu forma a un Sprite, es mucho más fácil. Sprite extiende DisplayObjectContainer, por lo que podría agregar su TextField allí.

Espero que ayude, Lance