<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" horizontalAlign="left" paddingLeft="0" paddingTop="0"
width="500" height="279" backgroundColor="#FFFFFF"
initialize="this.init();" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import com.moorwind.imageprocesser.edit.CutImage;
import com.moorwind.imageprocesser.utils.SelectRectangle;
private const IMAGE_URL:String = "http://farm3.static.flickr.com/2361/2486804592_14bef9e8d6_o.jpg";
private var loader:Loader;
private var bmp:Bitmap;
private var stream:URLStream;
private var selectRectLayer:Sprite;
private var selectRect:SelectRectangle;
private function init():void
{
this.loader = new Loader();
this.stream = new URLStream();
this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE,this.onComplete);
this.stream.load(new URLRequest(this.IMAGE_URL));
this.stream.addEventListener(Event.COMPLETE,this.onLoaded);
this.selectRectLayer = new Sprite();
this.canvas.rawChildren.addChild(this.selectRectLayer);
this.selectRect = new SelectRectangle(this.canvas,this.selectRectLayer);
}
private function onLoaded(e:Event):void
{
var bytearray:ByteArray = new ByteArray();
this.stream.readBytes(bytearray);
if(this.stream.connected)
this.stream.close();
this.loader.loadBytes(bytearray);
}
private function onComplete(e:Event):void
{
try
{
this.bmp = this.loader.content as Bitmap;
}
catch(e:Error)
{
}
this.canvas.rawChildren.addChild(this.bmp);
this.refershLayer();
}
private function refershLayer():void
{
this.canvas.rawChildren.setChildIndex(this.selectRectLayer, this.canvas.rawChildren.numChildren - 1)
}
private function startSelect():void
{
this.selectRect.InitSelectRectangle()
}
private function cutImage():void
{
this.canvas.rawChildren.removeChild(this.bmp);
this.bmp = CutImage.Cut(this.bmp,this.selectRect.selectRectangle);
this.canvas.rawChildren.addChild(this.bmp);
this.refershLayer();
this.cancelSelect();
}
private function cancelSelect():void
{
this.selectRect.Cancel();
}
]]>
</mx:Script>
<mx:HBox>
<mx:Button label="剪裁" click="this.startSelect();"/>
<mx:Button label="确定" click="this.cutImage();" />
<mx:Button label="取消" click="this.cancelSelect();"/>
</mx:HBox>
<mx:Canvas id="canvas"/>
</mx:Application>