FLEX AIR 读写安卓本地文件

 

1.  目标: 将字节流图片保存在安卓本地路径,如 "/data/mypppd/"下,

 

        file = File.documentsDirectory.resolvePath("/data/mypppd/"+countPoint+".jpg");
        var fileStream:FileStream = new FileStream();
        fileStream.open(file, FileMode.WRITE);
        fileStream.writeBytes(bytes[countPoint]);
        fileStream.close();

 

2. 目标: 从安卓本地目录读取图片文件显示(比如用来显示广告图片)

  如 从"/data/mypppd/"下读取图片显示,事先不知道该目录下有几个文件,提供一种解决方案,初始化一个数组,这里长度设为7,显示时依次循环,遇到不存在的直接跳到下一次循环,这样就能依次显示0-7张图片中的任一种情况。

  a. 从本地读取图片文件(保存在urlReq中即可通过load访问)

  

  var file:Array = new Array();
  var urlReq:Array = new Array();
  for (var j:int = 0; j < 7; j++)
  {
      var path:String = "/data/mypppd/"+ (j+1) + ".jpg";        
      file[j] = File.documentsDirectory.resolvePath(path);
      urlReq[j] = new URLRequest(file[j].url);
  }

  

  b. 显示图片

 

protected function myload():void
{
    img1 = new Image;
    load = new Loader;            
    //监听文件不存在时error事件                
    load.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, LoadErrorHandler);
    //if (urlReq[index] != null)
    //装载图片到load中
    load.load(urlReq[index]);
    //全局变量index,控制图片序号,初始化为0
    index++;
    if (index >= 7)
      index = 0;
    //图片装载完成事件
    load.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
}
            
//图片文件不存在时继续调用myload(),寻找下一张
private function LoadErrorHandler(event:IOErrorEvent):void
{
    trace(event.toString());
    if (index >= 7)
        index = 0;
    myload();
}
            
//加载结束后调用函数
private function imgLoaded(e:Event):void
{
    //将加载的图片显示在名称为pic的image控件中,
    pic.source=load.content;
    //可见
    image.visible = true; 
}

 

posted @ 2014-06-11 11:18  凤舞十天  阅读(499)  评论(0编辑  收藏  举报