【发布时间】:2011-09-03 06:35:03
【问题描述】:
我使用以下代码在图像上添加了黑白滤镜:
var n:Number = 1/3;
var matrix:Array = [n,n,n,0,0,
n,n,n,0,0,
n,n,n,0,0,
0,0,0,1,0];
var cmf:ColorMatrixFilter = new ColorMatrixFilter(matrix);
_bitmap.bitmapData.applyFilter(_buffer, _sourceRect, new Point(), cmf);
我现在希望能够删除此过滤器,但我似乎无法弄清楚如何。我读过如果我清除 _bitmap.filters 数组,它应该被删除,但是当我检查时,这个数组是空的。
有没有人对我如何做到这一点有任何建议?
编辑 我正在使用 FlashPunk 游戏引擎,并且正在处理 Image.as 类中的 bitmapData。我所有的代码都是使用 FlashDevelop 编写和编译的。
编辑
由于 flashpunk flashpunk 引擎中的图像类正在使用 bitmapData.CopyPixels() 函数绘制位图,因此我无法将过滤器直接应用于位图。过滤器未应用于 bitmapData,因此未绘制。
我已将渲染方法更改为使用 bitmapData.draw() 函数,该函数使用实际位图来绘制图像。
我现在可以通过执行以下操作向我的位图添加过滤器:
_bitmap.filters = [ColorMatrixFilter];
然后我可以通过执行以下操作来删除我的过滤器:
_bitmap.filter = [];
【问题讨论】:
标签: flash actionscript-3 filter bitmap bitmapdata