Detecting Areas by Color
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Shape;
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
public class Main extends Sprite {
private var _bitmapData:BitmapData;
private var _loader:Loader = new Loader();
private var _outline:Shape;
public function Main () {
_loader.load(new URLRequest("http://www.java2s.com/samplefiles/image2.jpg"));
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
addEventListener(MouseEvent.CLICK, clickHandler);
}
private function completeHandler(event:Event):void {
var w:Number = _loader.width;
var h:Number = _loader.height;
_bitmapData = new BitmapData(w, h);
_bitmapData.draw(_loader);
var bitmap:Bitmap = new Bitmap(_bitmapData);
var container:Sprite = new Sprite();
addChild(container);
container.addChild(bitmap);
_outline = new Shape();
addChild(_outline);
}
private function clickHandler(event:MouseEvent):void {
var color:uint = _bitmapData.getPixel32(mouseX, mouseY);
var rectangle:Rectangle = _bitmapData.getColorBoundsRect(0xFFFFFFFF, color);
_outline.graphics.clear();
_outline.graphics.lineStyle(0, 0x000000, 1);
_outline.graphics.drawRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
}
}
}
Related examples in the same category