2010-08-08 15 views

Respuesta

8

En Actionscript, la forma más natural de manejar esto, creo, sería usar un contenedor como Sprite y dibujar usando su objeto graphics y/o agregar otros objetos de visualización como elementos secundarios. Luego, puede tomar su "instantánea" cuando/si es necesario, para obtener los datos de píxeles.

Para agregar texto, la creación de un TextField es la opción más simple.

De todos modos, podría escribir una pequeña función que hace esto en un BitmapData existente, si lo desea. He aquí un esbozo de cómo una función de este tipo se podría escribir:

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

puede dibujar un mapa de bits en su 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

es no duplicar respuesta? –