2010-02-26 10 views
9

Existe-t-il un moyen de dessiner du texte dans un objet DisplayObject ou une forme en utilisant uniquement du code ActionScript? La seule façon que je peux trouver sur le web est en créant un TextField, mais je ne peux pas ajouter un TF à un objet DisplayObject ou Shape.Dessiner du texte sur une forme dans ActionScript 3

Edit:

grâce à Solved viatropos.

Pour toute personne qui est intéressé:

DisplayObject implémente IBitmapDrawable qui peut être passé comme argument à la fonction d'un objet drawBitmapData, qui peut ensuite être dessiné en utilisant 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(); 

Répondre

9

Bonne question. C'est au-delà de tout ce que j'ai jamais eu besoin de faire, mais je pense que je sais comment le faire. La forme étend DisplayObject, mais pas DisplayObjectContainer, de sorte que vous ne pouvez rien y ajouter. Mais il a la propriété graphics, de sorte que vous pouvez dessiner des choses à l'intérieur. La meilleure façon de penser est de prendre un instantané Bitmap du TextField, et de le dessiner dans la forme. Je sais que c'est ce que fait Degrafa pour leur RasterText (consultez le source, c'est vraiment utile).

Si vous avez changé votre Shape en Sprite, c'est beaucoup plus facile. Sprite étend DisplayObjectContainer, afin que vous puissiez y ajouter votre TextField.

Espérons que ça aide, Lance

Questions connexes