Frage

In AS3 Ich schaffe einen Schlagschatten, der gut arbeitet. Aber wenn ich die Höhe oder Breite des Objekts (mcWhiteBorder) der Schlagschatten erscheint nicht überhaupt ändern. Irgendwelche Ideen?

var mcWhiteBorder:whiteBorder = new whiteBorder();
var dropShadow:DropShadowFilter = new DropShadowFilter();
dropShadow.distance = 1;
dropShadow.alpha = .2;
dropShadow.blurX = 10;
dropShadow.blurY = 10;
mcWhiteBorder.height = houseXML.height-40;
mcWhiteBorder.width = houseXML.width+5;
mcWhiteBorder.x = houseXML.photoX-10;
mcWhiteBorder.y = houseXML.photoY+20;
mcWhiteBorder.filters = [dropShadow];

addChild(mcWhiteBorder);
War es hilfreich?

Lösung

Beachten Sie, dass Filter mit Clips arbeiten nicht größer als „bestimmte Werte“, haben einen Blick auf die Kommentare in dieses Thema ...

Andere Tipps

Ich habe kopiert und den Code eingefügt und es scheint zu funktionieren. Sicher, ich weiß nicht, was Ihre Bibliothek Symbol sieht aus wie (i verwenden nur ein graues sqare) und ich habe die houseXML Variable mit statischen Werten ersetzt. Der Code, den ich versucht habe, ist die folgende:

var mcWhiteBorder:whiteBorder = new whiteBorder();
var dropShadow:DropShadowFilter = new DropShadowFilter();
dropShadow.distance = 1;
dropShadow.alpha = .2;
dropShadow.blurX = 10;
dropShadow.blurY = 10;
mcWhiteBorder.height = 200;
mcWhiteBorder.width = 300;
mcWhiteBorder.x = 50;
mcWhiteBorder.y = 50;
mcWhiteBorder.filters = [dropShadow];

addChild(mcWhiteBorder);

Es scheint ganz gut zu arbeiten .. Überprüfen Sie Ihre houseXML und sehen, ob die Werte, die Sie zuordnen gültig sind und so weiter.

Ich habe einige Probleme in der Vergangenheit mit dieser habe, auch. Ich bin zu dem Schluss gekommen, dass es funktioniert immer, wenn Sie die Filter auf die vorhandene Filteranordnung sind das Hinzufügen, anstatt einen neuen zu erstellen, auch wenn es leer ist. Ich bin nicht wirklich sicher, warum. Ihr Code würde so etwas wie:

var mcWhiteBorder:whiteBorder = new whiteBorder();
var tmpFilters:Array = mcWhiteBorder.filters;
var dropShadow:DropShadowFilter = new DropShadowFilter();
dropShadow.distance = 1;
dropShadow.alpha = .2;
dropShadow.blurX = 10;
dropShadow.blurY = 10;
mcWhiteBorder.height = houseXML.height-40;
mcWhiteBorder.width = houseXML.width+5;
mcWhiteBorder.x = houseXML.photoX-10;
mcWhiteBorder.y = houseXML.photoY+20;
tmpFilters.push(dropShadow);
mcWhiteBorder.filters = tmpFilters;

addChild(mcWhiteBorder);

Anstatt also einen Filter auf die filters Eigenschaft zuweist, werden Sie das Hinzufügen tatsächlich diese Filter zu den bestehenden. Ich bin mal gespannt, ob das funktioniert.

ich keine Probleme Syntax weise zu sehen.

dropShadow.distance = 1;
dropShadow.alpha = .2;
dropShadow.blurX = 10;
dropShadow.blurY = 10;

Das ist ziemlich ausgeblendet. Ändern alpha 1 oder 2 und sehen, ob Sie es sehen können. Auch scheinen Sie nicht die Einstellung der Farbe. Ich denke, die Standard-schwarz ist. Stellen Sie sicher, Objekt sind nicht über etwas dunkel und Sie verpassen es einfach.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top