Retrieving percentage of colors of a MovieClip

2019-06-11 11:51发布

问题:

today my question is as follows:

I have a game, and one of the phases is that you have to pass a "protective cream" on the doll's body. I already have this effect (image below), I'm using an alpha filter combined with a mask that is drawn.

I wonder how can I do to be checking after 20 seconds of the game, if the user has filled 100% of the masks ...

My code is this (forgive me, I am beginner and Brazilian ... any questions ask me):

stop();
import flash.display.Shape;
import flash.events.Event;
import flash.display.BlendMode;
import flash.display.BitmapData;
import flash.utils.Timer;

var tempoFase2:Timer = new Timer(10000, 1);

var corpo_creme:MovieClip = new corpo_mask();
addChild(corpo_creme);
corpo_creme.x = corpo_branco.x;
corpo_creme.y = corpo_branco.y;

setChildIndex(corpo_branco, 1);
setChildIndex(cabeca, 3);
setChildIndex(corpo_creme, 2);

var drawing:Shape = new Shape();
addChild(drawing);

corpo_creme.mask = drawing;
corpo_branco.blendMode = BlendMode.LAYER;

stage.addEventListener(MouseEvent.MOUSE_MOVE,draw);

function draw(e:Event):void {
    drawing.graphics.beginFill(0xFFFFFF);
    drawing.graphics.drawCircle(mouseX,mouseY,30);
    drawing.graphics.endFill();
}

Thank U.

回答1:

Try this solution:

https://stackoverflow.com/a/15354416/1627055

Basically, you run BitmapData.threshold() against a mask of type BitmapData. You can also draw the relevant portion of your drawing over a temporary BitmapData object and do the same trick, make sure though that your algorithm will count the areas that are not covered by your drawing as filled - you can achieve this by creating the bitmap data pre-filled with white.