我觉得我在这里遗漏了一些东西,所以希望这个问题能得到快速回答。
由于屏幕上移动的对象数量,我开始使用blitting来提高程序的效率。现在我正在测试如何做不同的事情;我是过滤器。
我尝试使用applyFilter()来应用简单的辉光滤镜; 问题是:
a)仅当我将矩形定义为bitmapData.generateFilterRect()时才有效,除了
之外不是问题b)忽略此项并在裁剪整个图像时应用滤镜。如果你注意到,只有左上角实际上是发光的,剩下的就是切断了。
我在这里缺少什么?
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));
答案 0 :(得分:1)
这可能是你的问题:
应用滤镜后,生成的图像可能大于输入图像。例如,如果使用BlurFilter类来模糊(50,50,100,100)的源矩形和目标点(10,10),则目标图像中更改的区域大于(10,10,60,60) )因为模糊。这在applyFilter()调用期间内部发生。
听起来你需要计算新的图像尺寸并将其绘制到屏幕上,而不是原始尺寸。