Нарисуйте текст на форме в ActionScript 3

Там какой-либо путь состоит в том, чтобы нарисовать текст в 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();

9
задан Community 23 May 2017 в 12:18
поделиться

1 ответ

Хороший вопрос. Это выходит за рамки всего, что мне когда-либо приходилось делать, но я думаю, что знаю, как это сделать.

Shape расширяет DisplayObject, но не DisplayObjectContainer, поэтому вы не можете ничего добавить к нему. Но у него есть свойство graphics , поэтому вы можете рисовать в нем объекты. Лучший способ, который я могу придумать, - это сделать снимок Bitmap TextField и нарисовать его в Shape. Я знаю, что это то, что Degrafa делает для своего RasterText (посмотрите исходный код , он действительно полезен).

Если вместо этого вы измените свою фигуру на спрайт, это будет намного проще. Sprite расширяет DisplayObjectContainer, поэтому вы можете добавить туда свой TextField.

Надеюсь, что это поможет, Лэнс

9
ответ дан 4 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: