从Sprite ActionScript中删除颜色

时间:2016-12-11 20:04:23

标签: actionscript-3 flash filtering sprite

我的项目使用Loader类加载SWF文件,然后从这些子文件加载Sprite对象。每个精灵都有一个特定的绿色,我想用一种颜色的所有像素替换透明颜色。

我可以将这些Sprite重新编译为BitmapData类的对象,以简化操作,但我正在寻找避免逐像素操作对象的任何方法。我猜测我可以使用某种位图过滤器,但我对ActionScript了解不够熟悉。

1 个答案:

答案 0 :(得分:3)

使用该精灵的threshold尝试bitmapData

之前√

enter image description here

var bmd:BitmapData = new BitmapData(sprite.width, sprite.height, true, 0x0);
bmd.draw(sprite);
bmd.threshold(bmd, bmd.rect, new Point(), "==", 0xff00ff00); // 0xff00ff00 = GREEN

您可以更改绿色,也可以自由设置更多的颜色范围进行透明化,例如,某种检测光滑的角落,如下所示:

enter image description here

只需要使用threshold的操作参数,我使用“==”,但其他许多可用。

参考: