Я скопировал и вставил ваш код, и, похоже, он работает. Конечно, я не знаю, как выглядит ваш символ библиотеки (я просто использовал серый квадрат), и я заменил переменную 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);
Таким образом, вместо того, чтобы назначать фильтр свойству filters
, вы фактически добавляете этот фильтр к существующим. Мне любопытно, работает ли это.
person
evilpenguin
schedule
07.08.2009