2010-02-26 9 views
9

Gibt es eine Möglichkeit, Text in einem DisplayObject oder Shape nur mit ActionScript zu zeichnen? Die einzige Möglichkeit, die ich im Web finden kann, ist, ein TextField zu erstellen, aber ich kann kein TF zu einem DisplayObject oder Shape hinzufügen.Text in ActionScript 3 in Form zeichnen

Edit:

Gelöst dank viatropos.

Für alle, die interessiert ist:

DisplayObject implementiert IBitmapDrawable, die als Argument an die draw Funktion eines BitmapData Objekt übergeben werden können, die dann graphics.beginBitmapFill Verwendung gezogen werden können.

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(); 

Antwort

9

Gute Frage. Das ist alles, was ich jemals tun musste, aber ich denke, ich weiß, wie es geht.

Shape erweitert DisplayObject, aber nicht DisplayObjectContainer, sodass Sie nichts hinzufügen können. Aber es hat haben die graphics Eigenschaft, so dass Sie Dinge hineinziehen können. Der beste Weg, an den ich denken kann, ist, einen Bitmap-Schnappschuss des TextFields zu machen und diesen in die Form zu zeichnen. Ich weiß, dass das ist, was Degrafa für ihre RasterText tut (siehe source, es ist wirklich hilfreich).

Wenn Sie Ihre Shape stattdessen zu einem Sprite geändert haben, ist es viel einfacher. Sprite erweitert DisplayObjectContainer, sodass Sie Ihr TextField dort hinzufügen können.

Hoffe, dass hilft, Lance