Там какой-либо путь состоит в том, чтобы нарисовать текст в DisplayObject или Форме с помощью только ActionScript? Единственным путем я могу найти в сети, путем создания TextField, но я не могу добавить TF к DisplayObject или Форме.
Править:
Решенный благодаря viatropos.
Для любого этому интересно:
DisplayObject
реализации IBitmapDrawable
который может быть передан как аргумент draw
функция a BitmapData
объект, который затем может быть оттянут с помощью 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();
Хороший вопрос. Это выходит за рамки всего, что мне когда-либо приходилось делать, но я думаю, что знаю, как это сделать.
Shape расширяет DisplayObject, но не DisplayObjectContainer, поэтому вы не можете ничего добавить к нему. Но у него есть свойство graphics
, поэтому вы можете рисовать в нем объекты. Лучший способ, который я могу придумать, - это сделать снимок Bitmap TextField и нарисовать его в Shape. Я знаю, что это то, что Degrafa делает для своего RasterText (посмотрите исходный код , он действительно полезен).
Если вместо этого вы измените свою фигуру на спрайт, это будет намного проще. Sprite расширяет DisplayObjectContainer, поэтому вы можете добавить туда свой TextField.
Надеюсь, что это поможет, Лэнс