J'ai copié et collé votre code et cela semble fonctionner. Bien sûr, je ne sais pas à quoi ressemble le symbole de votre bibliothèque (j'ai simplement utilisé un sqare gris) et j'ai remplacé la variable houseXML
par des valeurs statiques. Le code que j'ai essayé est le suivant:
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);
Il semble fonctionner très bien .. Vérifiez votre houseXML
et voir si les valeurs attribuées sont valides et ainsi de suite.
J'ai eu quelques problèmes dans le passé avec ceci, aussi. Je suis arrivé à la conclusion que cela fonctionne toujours si vous ajoutez le filtre au tableau de filtres existant, au lieu d'en créer un nouveau, même s'il est vide. Je ne suis pas vraiment sûr pourquoi. Votre code serait quelque chose comme:
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);
Ainsi, au lieu de asigning un filtre à la propriété filters
, vous ajoutez en fait que le filtre à ceux qui existent déjà. Je suis curieux de savoir si cela fonctionne.
Est-ce que le travail de code ci-dessus ou avez-vous commenter le .height et les instructions .width? Avez-vous déjà des filtres sur le clip whiteBorder ou à l'intérieur de celui-ci? Tout endroit où vous nettoyez les filtres ou est-ce dans n'importe quel type de boucle ou d'action? – typeoneerror