SharedObject对象保存二进制数据到本地

SharedObject对象可以缓存二进制数据,可以将图片或者swf文件转化成byteArray缓存到本地,见下面的源码:

package
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.PixelSnapping;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.geom.Rectangle;
    import flash.net.SharedObject;
    import flash.utils.ByteArray;
   
    public class SharedObjectByteArr extends Sprite
    {
        [Embed(source="../images/1.jpg")]
        private var imgClass:Class;
       
        private var sharedname:String = "showPicwky";
       
        public function SharedObjectByteArr()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            this.cash();
        }
   
        private function cash():void
        {
            var imgShared:SharedObject = SharedObject.getLocal(sharedname);
                if(imgShared.data.byte == null)
                {
                    trace("ok1 : "+imgShared.data.byte+" : "+imgShared.data.ifAdd);
                    var bmp:Bitmap = new imgClass();
                    var byte:ByteArray = bmp.bitmapData.getPixels(bmp.bitmapData.rect);
                        imgShared.data.byte = byte;
                        imgShared.data.width = bmp.bitmapData.rect.width;
                        imgShared.data.height = bmp.bitmapData.rect.height;
                        imgShared.flush();
                }
                else
                {
                    var imgByte:ByteArray = imgShared.data.byte;
                    var rect:Rectangle = new Rectangle(0,0,imgShared.data.width,imgShared.data.height);
                        trace(rect.x+" : "+rect.y+" : "+rect.width+" : "+rect.height);
                    var bmd:BitmapData = new BitmapData(rect.width,rect.height,true,0x00ffffff);
                        bmd.setPixels(rect,imgByte);
                    var bmp:Bitmap = new Bitmap(bmd,PixelSnapping.AUTO,true);
                        this.addChild(bmp);
                }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值