我正在尝试在 AS3/Flex SDK 中添加过滤器。我可以为任何一个对象添加一个过滤器 - 但我想将过滤器应用到一切那是某个对象的子对象。
假设弹出一个暂停窗口,暂停窗口下方的所有内容都会变得模糊。
将过滤器应用于每个单独的对象(例如:迭代列表)是行不通的,因为每个对象的过滤器可能会重叠并且看起来非常难看。
有谁知道该怎么做?有没有办法应用过滤器一切?
这是代码的简化版本:
myCanvas.graphics.beginFill(0x00FF00,0.5);
myCanvas.graphics.drawRect(0,0,100,100);
myCanvas.addChild(new vectorImage());
myCanvas.addChild(new vectorImage2());
var blur:BlurFilter = new BlurFilter();
myCanvas.filters = [blur];
直接绘制的图形和子图形都不会应用模糊效果。我尝试更改默认值并尝试其他过滤器:
var colors:Array = [0xEDEDED, 0xCCCCCC, 0x211b28, 0x211b28, 0x211b28];
var alphas:Array = [0, 1, .35, .5, 1];
var ratios:Array = [0, 50, 100, 115, 155];
myCanvas.filters = [new GradientGlowFilter(0, 0, colors, alphas, ratios, 50, 50, 1, 3, "full", false)];
具有相同的效果(也就是说:没有)。有效的是:
var vi:MovieClip = new vectorImage();
myCanvas.addChild(vi);
vi.filters = [blur];
但由于多个过滤器未正确对齐而产生上述问题。