Как рисовать строки на BitmapData, есть ли что-то вроде Graphics.drawString() от Java?Как нарисовать строку на BitmapData
6
A
ответ
8
В ActionScript самый естественный способ обработки этого, я думаю, будет использовать контейнер, такой как Sprite
, и рисование с использованием его объекта graphics
и/или добавление других отображаемых объектов в качестве дочерних элементов. Затем вы можете взять ваш «снимок», когда/если это необходимо, чтобы получить данные пикселя.
Для добавления текста, создание TextField
является самым простым вариантом.
В любом случае, вы могли бы написать небольшую функцию, которая делает это на существующей BitmapData, если хотите. Вот набросок того, как такая функция может быть записана:
function drawString(target:BitmapData,text:String,x:Number,y:Number):void {
var tf:TextField = new TextField();
tf.text = text;
var bmd:BitmapData = new BitmapData(tf.width,tf.height);
bmd.draw(tf);
var mat:Matrix = new Matrix();
mat.translate(x,y);
target.draw(bmd,mat);
bmd.dispose();
}
// use
var bitmap:BitmapData = new BitmapData(400,400);
// let's draw something first (whatever is on the stage at this point)
bitmap.draw(stage);
drawString(bitmap,"testing",100,50);
// display the result...
addChild(new Bitmap(bitmap));
1
Вы можете нарисовать TextField
в свой битмэп
import flash.text.TextField;
import flash.display.BitmapData;
import flash.display.Bitmap;
var tf:TextField=new TextField();
tf.text="Hello world";
var bd:BitmapData=new BitmapData(200,200, false,0x00ff00);
bd.draw(tf);
var bm:Bitmap=new Bitmap(bd);
addChild(bm);
является не дублировать ответ? –