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; }