我想使用bitmapData.floodfill()方法通过使用“onclick”事件来填充图像(就像paint bucket一样)。但问题是,当我使用透明图像(png,gif)时,此方法不起作用。当我使用不同的东西(如蓝色,红色等)时,它只会使用白色填充(或者我想是alpha = 0)。这是我用红色填充杰瑞鼠标时的样子clip2net.com/s/2nW65,这是我用于嵌入图像的例子:
var container:MovieClip = new MovieClip(); //container that would hold the image
jerry_img = new Resource.jerry_graph(); //jerry image from assets/jerry.gif
addChild(container);
container.addChild(jerry_img);
container.addEventListener(MouseEvent.CLICK, fill_function);
public function fill_function(e:MouseEvent):void {
jerry_img.bitmapData.floodFill(e.localX, e.localY, 0x00FFFF);
}
当我将png或gif更改为JPEG时,洪水填充开始起作用,但它会填充严重的视觉问题,例如http://clip2net.com/s/2nW4J。 以下是示例https://dl.dropbox.com/u/78904724/as_host/flood_fill.rar的完整来源 (您可以将资源中的jerry.gif更改为jerry.jpg)
另外,对不起,如果这是一个愚蠢的问题和我的低英语水平。
答案 0 :(得分:1)
内置floodFill没有实现别名它只填充精确的颜色,所以为了能够填充没有人工制品需要准备png(基本上删除别名像素)。或者找到新的填充算法,例如here
最好的问候