package { import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.Event; public class Histogram extends Sprite { var eBm, hBm:Bitmap; var bmd:BitmapData; var hHistogram:HHistogram; var iHistogram:IHistogram; var rgbHistogram:RGBHistogram; public function Histogram():void { eBm = new Bitmap(new RiverBitmapData(250, 250)); addChild(eBm); hBm = new Bitmap(); hBm.y = 310; addChild(hBm); hHistogram = new HHistogram(); iHistogram = new IHistogram(); rgbHistogram = new RGBHistogram(); bmd = new CowsBitmapData(250, 250); r1.addEventListener(Event.CHANGE, onEChange); r2.addEventListener(Event.CHANGE, onEChange); r3.addEventListener(Event.CHANGE, onEChange); r4.addEventListener(Event.CHANGE, onEChange); r5.addEventListener(Event.CHANGE, onEChange); rR.addEventListener(Event.CHANGE, onHChange); rG.addEventListener(Event.CHANGE, onHChange); rB.addEventListener(Event.CHANGE, onHChange); rI.addEventListener(Event.CHANGE, onHChange); rH.addEventListener(Event.CHANGE, onHChange); } function onEChange(event:Event):void { if (event.currentTarget == r1) { bmd = new CowsBitmapData(250, 250); } else if (event.currentTarget == r2) { bmd = new Cows2BitmapData(250, 250); } else if (event.currentTarget == r3) { bmd = new RiverBitmapData(250, 250); } else if (event.currentTarget == r4) { bmd = new LeatherBitmapData(250, 250); } else if (event.currentTarget == r5) { bmd = new LenaBitmapData(250, 250); } else { return; } eBm.bitmapData = bmd; } function onHChange(event:Event):void { var o:Object; if (event.currentTarget == rR) { o = rgbHistogram.calculate(bmd, 0); } else if (event.currentTarget == rG) { o = rgbHistogram.calculate(bmd, 1); } else if (event.currentTarget == rB) { o = rgbHistogram.calculate(bmd, 2); } else if (event.currentTarget == rI) { o = iHistogram.calculate(bmd); } else if (event.currentTarget == rH) { o = hHistogram.calculate(bmd); } else { return; } eBm.bitmapData = o.eBmd; hBm.bitmapData = o.hBmd; } } }