在AS3中我创建一个阴影,工作正常。但是,当我改变对象的高度或宽度(mcWhiteBorder)的阴影不会出现在所有。任何想法?

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);
有帮助吗?

解决方案

注意到,过滤器不与剪辑不是“一定值”更大的工作,看看在的此线程 ...

其他提示

我已经复制并粘贴您的代码,它似乎工作。当然,我不知道你的库元件的样子(我只用一个灰色sqare),我已经取代静态值houseXML变量。我已经试过的代码如下:

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

这似乎只是正常工作。检查你的houseXML,看看您指定的值是有效的等等。

我已经在这个过去的一些问题,也。我来,如果你要添加的过滤器,以现有的滤波器阵列,而不是创建一个新的,即使它是空的,它始终工作的结论。我真的不知道为什么。您的代码会是这样的:

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

因此,而不是asigning过滤器的filters财产,你实际上补充说,过滤器,以现有的。我很好奇,如果工程。

我没有看到任何问题的语法,明智的。

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

这几乎淡出。阿尔法更改为1或2,看看你能看到它。此外,你似乎没有被设置的颜色。我觉得默认的是黑色的。请确保你的对象不是在黑暗的东西和你只是失踪了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top