0

我有一个关于精灵或形状的复杂图形数据(无论哪个是确切的)。但我想为一个 Rect (例如 [10, 10, 240, 25] )或另一条路径绘制阴影(内部也是)。

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

是否可以执行 w\o 过滤器?

附言。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 回答