Wenden Sie Filter auf alles in AS3 an

Ich versuche, einen Filter in AS3 / Flex SDK hinzuzufügen. Ich kann jedem einzelnen Objekt einen Filter hinzufügen, aber ich möchte den Filter anwendenalles das ist ein Kind eines bestimmten Objekts.

Denken Sie, dass ein Pausenfenster auftaucht und alles unter dem Pausenfenster verschwimmt.

Das Anwenden eines Filters auf jedes einzelne Objekt (z. B. das Durchlaufen einer Liste) funktioniert nicht, da sich die Filter jedes Objekts dann überlappen und ziemlich hässlich aussehen können.

Weiß jemand, wie man das macht? Gibt es eine Möglichkeit, einen Filter auf anzuwenden?alles?

Hier ist eine vereinfachte Version des Codes:

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];

Weder auf die direkt gezeichneten Grafiken noch auf die Kinder wird der Unschärfeeffekt angewendet. Ich habe versucht, die Standardeinstellungen zu ändern und andere Filter auszuprobieren:

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)];

Mit identischen Wirkungen (das heißt: keine). Was funktioniert, ist:

var vi:MovieClip = new vectorImage();
myCanvas.addChild(vi);
vi.filters = [blur];

Dies führt jedoch zu den oben genannten Problemen, wenn mehrere Filter nicht richtig ausgerichtet sind.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage