ombre Flash AS3 non si presentano quando si cambia l'altezza e la larghezza
-
12-09-2019 - |
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);
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.