Pregunta

En AS3 estoy creando una sombra, que trabaja muy bien. Pero cuando cambio la altura o anchura del objeto (mcWhiteBorder) la sombra no aparece en absoluto. ¿Alguna idea?

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);
¿Fue útil?

Solución

Tome en cuenta que los filtros no funcionan con los clips más grandes que "ciertos valores", echar un vistazo a los comentarios en este hilo ...

Otros consejos

He copiado y pegado el código y parece que funciona. Claro, yo no sé lo que su símbolo de biblioteca se parece a (Acabo de utilizar un sqare gris) y he reemplazado la variable houseXML con valores estáticos. El código que he probado es la siguiente:

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

Parece que funciona bien .. Compruebe su houseXML y ver si los valores que se asignan son válidos y así sucesivamente.

He tenido algunos problemas en el pasado con esto, también. He llegado a la conclusión de que siempre funciona si va a añadir el filtro a la matriz de filtro existente, en lugar de crear una nueva, incluso si está vacío. No estoy realmente seguro de por qué. El código sería algo como:

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

Así que en lugar de asigning un filtro a la propiedad filters, en realidad estás añadiendo que filtran a los ya existentes. Estoy ansioso por ver si eso funciona.

No veo ningún problema en cuanto a la sintaxis.

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

Eso es bastante desvanecido. Cambiar alfa a 1 ó 2, y ver si puede verlo. Además, no parece ser el establecimiento del color. Creo que el defecto es negro. Asegúrate de que estás objeto no es más algo oscuro y sólo lo estás perdiendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top