我复制并粘贴了你的代码,它似乎工作。当然,我不知道你的图书馆符号是什么样的(我只是使用了一个灰色的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
属性,你实际上补充说,过滤器,以现有的。我很好奇,如果这有效。
请问上面的代码工作,或你有注释掉.height和.width语句?你已经在whiteBorder剪辑上有过滤器了,还是在里面?你正在清理过滤器的任何地方,还是以任何形式循环或行动? – typeoneerror 2009-07-10 15:44:37