Применить фильтр ко всему в AS3
Я пытаюсь добавить фильтр в AS3 / Flex SDK. Я могу просто добавить фильтр к любому отдельному объекту, но я хочу применить фильтр кeverything это ребенок определенного объекта.
Подумайте, появляется окно паузы, и все, что находится под окном паузы, становится размытым.
Применение фильтра к каждому отдельному объекту (например, итерация по списку) не работает, поскольку фильтры из каждого объекта могут затем перекрываться и выглядеть довольно некрасиво.
Кто-нибудь знает, как это сделать? Есть ли способ применить фильтр кeverything?
Вот упрощенная версия кода:
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];
но вызывает вышеупомянутые проблемы с несколькими фильтрами, не выравнивая должным образом.