首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ActionScript3.0中捕捉线条?

如何在ActionScript3.0中捕捉线条?
EN

Stack Overflow用户
提问于 2011-04-11 11:23:59
回答 1查看 434关注 0票数 1

嗨,我是actionscript的新手。

我正在尝试用ActionScript3制作一个画笔工具,孩子们可以用画笔在圆圈内绘制颜色。我已经使用linestyle实现了这一点。现在我想让画笔在孩子们将要完成的时候(比如当他们完成绘画的95%的时候)捕捉到颜色。我怎么知道孩子在圆圈上画了多少?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-04-11 15:41:20

我怎么知道孩子在圆圈上画了多少?

您可以:

  • 使你的圆和其他形状精灵得到分离的container
  • render它们成位图和计数的非透明像素的数量(你应该知道什么数字对应于100%)
  • 由于计算像素是繁重的操作(可能需要数百毫秒,取决于形状的大小),你不想运行它在每一帧上。我建议在MOUSE_UP上做,就在孩子完成下一次划水之后。

如何计算像素:

代码语言:javascript
复制
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%后,你可以清除孩子的图画,并显示填充形状。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5616468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档