从 Sprite ActionScript 中移除颜色

Removing Color from Sprite ActionScript

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

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

尝试 thresholdbitmapData 的 Sprite。

之前 之后 √


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

你可以改变绿色,你也可以自由设置更多范围的透明颜色,例如,像这样检测光滑的角:

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


参考文献: