Откуда мне знать, сколько ребенок нарисовал на круге?
Вы можете:
- сделать свои круги и другие формы спрайтами, чтобы получитьотдельный контейнер
- визуализирует их в растровое изображение и подсчитывает количество непрозрачных пикселей в нем (вы должны знать, какое число соответствует 100%)
- , поскольку подсчет пикселей - сложная операция (может потребоваться сотнимиллисекунды, в зависимости от размера фигуры), вы не хотите запускать его на каждом кадре.Я предлагаю сделать это в MOUSE_UP, сразу после того, как ребенок завершит следующий штрих.
Как считать пиксели:
function countPixels(shape:DisplayObject):int
{
var bd:BitmapData = new BitmapData(shape.width, shape.height);
bd.draw(shape);
//here you get sequence of ARGB-packed colors in vector
var pixels:Vector.<uint> = bd.getVector(bd.rect);
//AFAIK, fastest method to traverse vector is 'for' loop
var pixel:uint;
var filledCount:int = 0;
for (var i:int = pixels.length - 1; i >= 0; i--)
{
pixel = pixels[i];
//pixel is 32-bit ARGB color value, test upper 8 bits (alpha):
if ((pixel >> 24) > 0) filledCount++;
}
return filledCount;
}
Запустите это на заполненной форме, чтобы получить общее количество пикселей для сравненияс.
После того, как pixelCount достигнет 95%, вы можете очистить детский рисунок и показать заполненную форму.