AS3位图和过滤器

时间:2016-10-31 02:57:47

标签: actionscript-3 bitmap

我觉得我在这里遗漏了一些东西,所以希望这个问题能得到快速回答。

由于屏幕上移动的对象数量,我开始使用blitting来提高程序的效率。现在我正在测试如何做不同的事情;我是过滤器。

我尝试使用applyFilter()来应用简单的辉光滤镜; 问题是:

a)仅当我将矩形定义为bitmapData.generateFilterRect()时才有效,除了

之外不是问题

b)忽略此项并在裁剪整个图像时应用滤镜。如果你注意到,只有左上角实际上是发光的,剩下的就是切断了。

原草砖 Original Grass Tile

应用了辉光过滤器的草砖 Grass Tile with Glow Filter applied

我在这里缺少什么?

public function applyFilter(filter:*):void{
    bitmapData.applyFilter(bitmapData, bitmapData.generateFilterRect(new Rectangle(0,0, 100, 100), filter), new Point(0,0), filter); 
}

grass.applyFilter(new GlowFilter(0x000000));

1 个答案:

答案 0 :(得分:1)

这可能是你的问题:

  

应用滤镜后,生成的图像可能大于输入图像。例如,如果使用BlurFilter类来模糊(50,50,100,100)的源矩形和目标点(10,10),则目标图像中更改的区域大于(10,10,60,60) )因为模糊。这在applyFilter()调用期间内部发生。

     

Source

听起来你需要计算新的图像尺寸并将其绘制到屏幕上,而不是原始尺寸。