SharedObject に ByteArray 化した画像保存

by shihu
couldn't build だけどきっとこんな感じ
♥0 | Line 45 | Modified 2010-12-10 15:33:20 | MIT License
play

ActionScript3 source code

/**
 * Copyright shihu ( http://wonderfl.net/user/shihu )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/gxxR
 */

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.geom.Rectangle;
    import flash.net.SharedObject;
    import flash.net.URLRequest;
    import flash.utils.ByteArray;
    public class FlashTest extends Sprite {
        private var _so:SharedObject;
        public function FlashTest() {
             _so = SharedObject.getLocal( "aa" );
            if ( _so.data.ba ) {
                try {
                    var ba:ByteArray = _so.data.ba;
                    var bmd:BitmapData = new BitmapData( 500, 200, false );
                    bmd.setPixels( new Rectangle( 0, 0, 500, 200 ), ba );
                    addChild( new Bitmap( bmd ) );
                    
                    trace( "from so" );
                } catch ( error:Error ) {
                    _so.clear();
                    trace( "error" );
                }
            } else {
                trace( "load" );
                var loader:Loader = new Loader();
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoaderComplete );
                loader.load( new URLRequest( "http://gyazo.com/66d0504a3ca02c61e15533bcbedb8ef4.png ) );
            }
           
        }
        private function _onLoaderComplete( event:Event ):void {
            var loader:Loader = LoaderInfo( event.target ).loader;
            var bmd:BitmapData = new BitmapData( 500, 200, false );
            bmd.draw( loader.content );
            var ba:ByteArray = bmd.getPixels( new Rectangle( 0, 0, 500, 200 ) );
            _so.data.ba = ba;
            _so.flush();
            addChild( loader );
        }
    }
}