فلاش AS3 Drop Shadows لا تظهر عند تغيير الارتفاع والعرض

StackOverflow https://stackoverflow.com/questions/1104983

سؤال

في AS3، أقوم بإنشاء ظل قطرة، وهو ما يعمل بشكل جيد. ولكن عندما أقوم بتغيير ارتفاع أو عرض الكائن (McWhiteorder) لا يظهر Shadow Drop على الإطلاق. أيه أفكار؟

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;

هذا تلاشى جدا. قم بتغيير Alpha إلى 1 أو 2 ومعرفة ما إذا كان يمكنك رؤيته. أيضا، لا يبدو أنك تحدد اللون. أعتقد أن الافتراضي أسود. تأكد من أنك كائن ليس أكثر من شيء مظلم وأنت في عداد المفقودين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top