0

スプライトまたはシェイプに複雑なグラフィック データがあります (どちらが正確であっても)。しかし、1つの Rect ( [10, 10, 240, 25] など) または別のパスの影 (内部も) を描画したい。

  /// code before
  grObj.graphics.drawRect( 10, 10, 240, 25);
      /// -> draw inner shadow on this objcect somehow
  /// code after

フィルターなしで実行することは可能ですか?

ps。http://ipicture.ru/uploads/100927/RHZF1K6Exu.png


解決:

BitmapData(*).applyFilter( *,*,*,*); // play with this function :)

http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/display/BitmapData.html#applyFilter ()も

4

1 に答える 1

0

colorTransform を追加する予定で、フィルターの色も変更したくないため、オブジェクトにフィルターを追加したくないと仮定しています。

その場合は、元のスプライトと同じサイズの別のスプライトを作成してフィルタを分離し、hideObject パラメータを true に設定して新しいスプライトにドロップ シャドウ フィルタを追加します。

//display object
var grObj:Sprite = new Sprite();
grObj.graphics.beginFill(0xFF0000, 1);
grObj.graphics.drawRect(0, 0, 240, 25);
grObj.graphics.endFill();

//filter object
var dsFilter:Sprite = new Sprite();
dsFilter.graphics.beginFill(0);
dsFilter.graphics.drawRect(0, 0, grObj.width, grObj.height);
dsFilter.graphics.endFill();

dsFilter.filters = [new DropShadowFilter(4.0, 45, 0, 1.0, 4.0, 4.0, 1.0, 3, true, false, true)];

//display list
grObj.x = dsFilter.x = 10;
grObj.y = dsFilter.y = 10;

addChild(grObj);
addChild(dsFilter);
于 2010-09-27T13:10:44.973 に答える