Domanda

In AS3 Sto creando un'ombra, che funziona bene. Ma quando cambio l'altezza o larghezza dell'oggetto (mcWhiteBorder) l'ombreggiatura non appare affatto. Tutte le idee?

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);
È stato utile?

Soluzione

prendere atto che i filtri non funzionano con clip più grandi di "certi valori", hanno uno sguardo ai commenti di questa discussione ...

Altri suggerimenti

Ho copiato e incollato il codice e sembra funzionare. Certo, io non so che cosa il vostro simbolo della libreria sembra (ho appena usato uno sqare grigio) e ho sostituito la variabile houseXML con valori statici. Il codice che ho provato è il seguente:

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

Sembra funzionare bene .. Controlla la tua houseXML e vedere se i valori assegnati sono validi e così via.

Ho avuto alcuni problemi in passato con questo, anche. Sono giunto alla conclusione che funziona sempre se si sta aggiungendo il filtro per l'array filtro esistente, invece di crearne uno nuovo, anche se è vuota. Io non sono davvero sicuro perché. Il tuo codice sarebbe qualcosa di simile:

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

Così, invece di asigning un filtro alla proprietà filters, si sta effettivamente aggiungendo che il filtro a quelli già esistenti. Sono curioso di sapere se funziona.

Non vedo alcun problema di sintassi-saggio.

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

Questo è abbastanza sbiadito fuori. Cambiare alfa per 1 o 2 e vedere se si può vedere. Inoltre, non sembrano essere l'impostazione del colore. Credo che il valore predefinito è il nero. Assicurati di essere oggetto non è finita qualcosa di oscuro e sei solo manca di esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top