2013-03-21 57 views
2

我需要加載圖像從文件夾中的移動機器人加載外部圖片在Android的AIR

這是工作在PC SD卡創建的應用程序目錄,但不是在移動版

一些解決方案?

var imagesFin:File = File.applicationStorageDirectory.resolvePath("appImages/"); 
var files:Array = imagesFin.getDirectoryListing(); 

for (var i:uint = 0; i < files.length; i++){ 


    var picLoader = new Loader(); 
    picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadPicture); 
    picLoader.load(new URLRequest(files[i].nativePath)); 

} 
function loadPicture(event:Event):void { 

var imgAtual = event.target.content; 
ContainerImagesList.addChild(imgAtual); 
} 
+0

您是否嘗試添加錯誤事件偵聽器? – 2013-03-21 14:26:48

回答

0

在iOS中,我從不使用resolvePath。我只是使用像「images/photo.jpg」這樣的相對URL,它可以在任何iOS設備上完美運行。

代替resolvePath,你也可以使用URL方案。這是一個簡單的「app:/images/photo.jpg」或「app-storage:/settings/prefs.xml」。

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7fe4.html

這是我做的就是所有圖像在我的圖像文件緩存

var imageFolder:File = new File("app:/img"); 
var getfiles:Array = imageFolder.getDirectoryListing(); 
1

這項工作對我來說:

var bytes:ByteArray = new ByteArray(); 
var myFileStream:FileStream = new FileStream(); 
var myFile:File = File.documentsDirectory.resolvePath(YOUR_PATH); 

myFileStream.addEventListener(Event.COMPLETE, fileCompleteHandler) 
myFileStream.openAsync(myFile, FileMode.READ); 

function fileCompleteHandler(event:Event):void 
{ 
    myFileStream.readBytes(bytes); 

    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); 
    loader.loadBytes(bytes); 

    function imageLoaded(e:Event):void 
    { 
     addChild(Bitmap(loader.content)); 
     myFileStream.removeEventListener(Event.COMPLETE, fileCompleteHandler); 
     myFileStream.close(); 
    } 
} 

乾杯!