2010-08-08 3 views

ответ

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); 
+0

является не дублировать ответ? –