高さ&幅を変更すると、Flash AS3のドロップシャドウは表示されません。

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

質問

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);
役に立ちましたか?

解決

<のhref = "https://stackoverflow.com/questions/1189226/apply-filter-to-のコメントを見て、フィルタが「ある値」よりも大きなクリップでは動作しませんのでご注意くださいすべて-で-AS3 / 1193319#1193319" >このスレッドに...

他のヒント

私はコピーしてあなたのコードを貼り付け、動作しているようですしました。確かに、私はあなたのライブラリーのシンボルがどのように見える(私はちょうど灰色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);

だからではなく、filtersプロパティにフィルタをasigningの、あなたが実際に既存のものにそのフィルタを追加しています。それが動作する場合、私は興味があります。

私は、構文単位のいずれかの問題が表示されません。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top