2010-08-08 4 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

그것이 답을 중복되지 않는 다음과 같은 기능을 쓸 수있는 방법의 스케치입니다? –

관련 문제