Возможно я опять туплю, но этот пример поставил меня в ступор, поэтому и пишу сюда. Я уже много раз пользовался фильтрами, но понять почему не работает этот код не могу. Задача - загрузить цветную картинку (грузится локально и флешка скомпилирована для локального доступа к файлам), применить к ней фильтр и сделать черно-белой фоновой картинкой. Вот код класса:

Код AS3:
package
{
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.geom.*;
import flash.filters.ColorMatrixFilter;
import fl.motion.AdjustColor;
public class Main4 extends MovieClip
{
var _loader:Loader;
var _path:String = "0101color.png";
var loadedImage:DisplayObject;
var fon:Bitmap;
var item:Sprite;
var ajustItemColor:AdjustColor;
var _mask:Sprite;
public function Main4()
{
loadPic ();
}
public function loadPic ():void
{
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadPic);
//_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
_loader.load(new URLRequest(_path));
}
private function onLoadPic (e:Event):void
{
loadedImage = _loader.content;
createFon ();
}
private function createFon ():void
{
var bmpData:BitmapData = new BitmapData (loadedImage.width, loadedImage.height);
bmpData.draw (loadedImage);
var fon:Bitmap = new Bitmap (bmpData);
ajustItemColor = new AdjustColor ();
ajustItemColor.saturation = -100;
ajustItemColor.brightness = 0;
var colorMatrix:ColorMatrixFilter = new ColorMatrixFilter(ajustItemColor.CalculateFinalFlatArray());
var fonRect:Rectangle = new Rectangle (0, 0, loadedImage.width, loadedImage.height);
fon.bitmapData.applyFilter (fon.bitmapData, fonRect, new Point (), colorMatrix); // фильтр не работает
//addChild (fon);
var bg:Sprite = new Sprite ();
bg.filters = [colorMatrix]; //и этот фильтр не работает
addChild (bg);
bg.addChild(fon);
}
}
}
Никаких ошибок не выкидывается, картинка просто появляется цветной. Исходник прилагаю.