package se.hellothere.utils.debug { import com.adobe.images.PNGEncoder; import flash.display.BitmapData; import flash.display.Stage; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLRequestHeader; import flash.net.URLRequestMethod; import flash.utils.ByteArray; public class Screendump { private static var _stage : Stage; private static var _URI : String; public static function set stage( value : Stage ) : void { _stage = value; } public static function set URI( value : String ) : void { _URI = value; } public static function takeDump() : void { // take screendump var dump:BitmapData = new BitmapData(_stage.stageWidth,_stage.stageHeight,true,0x000000); dump.draw(_stage); // create PNG image var converter:PNGEncoder = new PNGEncoder(); var data : ByteArray = PNGEncoder.encode( dump ); // cleanup dump.dispose(); // setup HTTP Headers var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); var request:URLRequest = new URLRequest( _URI ); request.requestHeaders.push( header ); request.data = data; request.method = URLRequestMethod.POST; // Send data var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onComplete); loader.addEventListener(ErrorEvent.ERROR, onError); loader.addEventListener(IOErrorEvent.IO_ERROR, onError); loader.load( request ); } private static function onComplete(event:Event) : void { trace("complted"); } private static function onError(event:ErrorEvent) : void { trace("error "+event.text); } } }