В 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));