Код AS3:
// рисую квадрат
var s:Sprite = new Sprite();
var g:Graphics = s.graphics;
g.beginFill(0x676767);
g.drawRect(100,100,100,100);
addChild(s);
// применяю фильтры
var dropShadow:DropShadowFilter = new DropShadowFilter();
var glow:GlowFilter = new GlowFilter();
var glow2:GlowFilter = new GlowFilter(0x00FF00);
s.filters = [dropShadow, glow, glow2];
removeFilter(s, glow); // пытаюсь убрать фильтр glow
function removeFilter(target:DisplayObject, filter:BitmapFilter):void
{
var filters:Array = target.filters;
var t:int = filters.length;
while (t--)
{
trace(filters[t] == filter); // false, false, false
if (filters[t] == filter)
filters.splice(t,1);
}
if(filters.length == 0)
filters = null;
target.filters = filters;
}
trace(s.filters[0] == dropShadow); // false, почему?
Как удалить один из фильтров объекта, не зная их порядок?