0

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

3 に答える 3

2

コードをコピーして貼り付けましたが、機能しているようです。確かに、ライブラリシンボルがどのように見えるかはわかりません(私は灰色の正方形を使用しました)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実際にはそのフィルタを既存のフィルタに追加します。それがうまくいくかどうか知りたいです。

于 2009-08-07T07:09:31.373 に答える
1

フィルタは「特定の値」より大きいクリップでは機能しないことに注意してください。このスレッドのコメントをご覧ください...

于 2009-08-07T10:29:12.623 に答える
0

構文的に問題は発生していません。

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

それはかなりフェードアウトしています。アルファを1または2に変更して、表示されるかどうかを確認します。また、あなたは色を設定していないようです。デフォルトは黒だと思います。オブジェクトが暗いものの上になく、それを見逃していることを確認してください。

于 2009-07-09T16:41:27.533 に答える