Pergunta

Em AS3 Estou criando uma sombra, que funciona bem. Mas quando eu mudar a altura ou a largura do objeto (mcWhiteBorder) a sombra não aparecer em tudo. Alguma idéia?

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

Solução

Tome nota que os filtros não funcionam com clipes maiores que "certos valores", ter um olhar para os comentários no esta discussão ...

Outras dicas

Copiei e colei o código e parece trabalho. Claro, eu não sei o que sua aparência símbolo da biblioteca como (i usado apenas um sqare cinza) e troquei a variável houseXML com valores estáticos. O código que eu tentei é o seguinte:

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 muito bem .. Verifique se o seu houseXML e ver se os valores atribuídos são válidos e assim por diante.

Eu tive alguns problemas no passado com isso, também. Eu vim à conclusão de que ele sempre funciona se você está adicionando o filtro para o conjunto de filtro existente, em vez de criar um novo, mesmo se ele está vazio. Eu não estou realmente certo porquê. Seu código seria 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);

Então, ao invés de asigning um filtro para a propriedade filters, você está realmente acrescentando que filtro para os já existentes. Estou curioso para saber se isso funciona.

Não estou vendo nenhum problema de sintaxe-wise.

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

Isso é muito desapareceu. Mudança alfa para 1 ou 2 e veja se você pode vê-lo. Além disso, você não parecem estar definindo a cor. Eu acho que o padrão é preto. Verifique se você está objeto não é mais algo escuro e você está apenas perdendo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top