as3 - визуализировать текст прямо в Sprite.graphics? - PullRequest
2 голосов
/ 20 апреля 2011

Поскольку я ужасный, плохой человек, который любит делать вещи по-разному без причины, я бы хотел иметь возможность делать что-то вроде mySprite.graphics.drawText (...).

Насколько я понимаю, единственный способ получить текст в настоящее время - это создать TextField и добавить его в качестве дочернего элемента mySprite.В моей конкретной ситуации я бы предпочел не делать этого.

Любой совет приветствуется!

ooo

Ответы [ 3 ]

7 голосов
/ 20 апреля 2011

Неправильно bzzzzzzzt создайте новый объект BitmapData, создайте растровое изображение, добавьте к нему bitmapData и затем добавьте это растровое изображение в качестве дочернего для вашего спрайта. Пример:

var myTextImage:BitmapData = new BitmapData(textField.width, textField.height, true, 0x000000ff);

myTextImage.draw(textField);

mySprite.addChild(new Bitmap(myTextImage));

stage.addChild(mySprite);

Я только что создал этот код, чтобы вам пришлось его адаптировать, но принцип должен быть более чем достаточно ясным, чтобы адаптировать его к вашему проекту.

6 голосов
/ 22 марта 2013

Создайте новый объект BitmapData: bitmapdata = new BitmapData(txt.width, txt.height, true, 0x000000ff);

Нарисуйте на нем свое текстовое поле: bitmapdata.draw(txt);

А затем используйте графический класс, и он работает!

sprite.graphics.beginBitmapFill(bitmapdata);
sprite.graphics.drawRect(0,0,txt.width,txt.height);
sprite.graphics.endFill();

C ya

0 голосов
/ 20 апреля 2011

Если вы хотите обернуть его в метод Sprite, я бы просто расширил класс Sprite, добавив в него функцию drawText. В этом методе добавьте TextField и т. Д. Но это не так, как вы этого хотите.

В таком случае посмотрите здесь http://lab.polygonal.de/?p=916

Они создали коллекцию кода, которая может отображать шрифты без, ну, в общем, шрифтов. Есть недостатки, такие как размер файла, но это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...