Как создать инструмент заливки в приложении? - PullRequest
1 голос
/ 02 марта 2011

как я могу реализовать инструмент заливки заливки в приложении для рисования в flex?

case FILL:
        var b:BitmapData = new BitmapData(width, height);
        b.draw(this);
        b.lock();
        var from:uint = b.getPixel(x,y);

        var q:Array = [];

    var xx:int;
    var yy:int;
            var w:int = b.width;
        var h:int = b.height;
        q.push(y*w + x);
        while (q.length != 0) {
               var xy:int = q.shift();
        xx = xy % w;
            yy = (xy - xx) / w;
            if (b.getPixel(xx,yy) == from) { 
                b.setPixel(xx,yy,SolidColorStroke(stroke).color);
                if (xx != 0) q.push(xy-1);
                    if (xx != w-1) q.push(xy+1);
                if (yy != 0) q.push(xy-w);
                if (yy != h-1) q.push(xy+w);
                }
            }
            b.unlock(null);
            break;

Абдул Халик

1 Ответ

1 голос
/ 02 марта 2011

Вы пробовали с Bitmapdata.floodFill ?

...