Как нарисовать строку на BitmapData - PullRequest
6 голосов
/ 08 августа 2010

как я могу нарисовать строки в BitmapData, есть что-то вроде Java's Graphics.drawString ()?

Ответы [ 2 ]

8 голосов
/ 08 августа 2010

В 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 голос
/ 08 августа 2010

Вы можете нарисовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...