views:

7814

answers:

3

I have some sprites that the users can manipulate, drag around and resize. Now I'd like to be able to display text in those sprites. I've tried lots of, probably stupid, ways. Like inheriting from Label and adding a Label child to the sprite, but no text shows up.

One disturbing thing: Inheriting from Label I get the text to show up if I run in the debugger and inspect my Label subclass instance.

I have this feeling I'm missing something really obvious. How is this done, the proper way?

A: 

Add a new label as a child of your sprite object.

VBNight
That doesn't work for some reason. Adding a TextField works, but has some side effects that I now must sort out.
PEZ
+6  A: 

I would go with something more low-level than Label. Use a TextField and add it as a child to the Sprite:

var text:TextField = new TextField();
text.text = "hello world";
addChild(text);

Note: your text will not show up if the Sprite is rotated and the fonts are not embedded.

Christophe Herreman
Thanks! This was starting to drive me nuts. Any idea why it doesn't work using a Label?
PEZ
+4  A: 

you should read about the display list

var s:Sprite = new Sprite(); 
var txt:TextField = new TextField(); 
txt.text ="here is same text"; 
s.addChild(txt);
Shvilam
+1 for the display list link.
PEZ