2010-02-26 22 views
9

Czy istnieje sposób na narysowanie tekstu w obiekcie DisplayObject lub Shape przy użyciu tylko ActionScript? Jedyny sposób, jaki mogę znaleźć w Internecie, polega na utworzeniu TextField, ale nie mogę dodać TF do DisplayObject lub Shape.Narysuj tekst na kształt w ActionScript 3

Edit:

rozwiązany dzięki viatropos.

Dla wszystkich, którzy są zainteresowani:

DisplayObject realizuje IBitmapDrawable, które mogą być przekazywane jako argument funkcji draw z BitmapData obiektu, która następnie może być wykorzystana za pomocą 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(); 

Odpowiedz

9

Dobre pytanie. To jest ponad wszystko, co kiedykolwiek musiałem zrobić, ale myślę, że wiem, jak to zrobić.

Kształt wydłuża DisplayObject, ale nie DisplayObjectContainer, więc nie można nic do niego dodać. Ale ma ma właściwość graphics, dzięki czemu można narysować rzeczy do niego. Najlepszym sposobem, jaki mogę wymyślić, jest zrobienie migawki BitFlAP z TextField i narysowanie tego w Kształcie. Wiem, że to właśnie robi Degrafa dla ich RasterText (sprawdź source, to naprawdę pomocne).

Jeśli zamiast tego zmieniono kształt na Sprite, jest o wiele łatwiej. Sprite rozszerza DisplayObjectContainer, więc możesz tam dodać swój TextField.

Nadzieja, która pomaga, Lanca