こんにちはAS3航空任意の助けに前もって感謝...Androidのファイルパス
私はアプリの格納ディレクトリのサブフォルダ内のすべての画像が表示される必要があり、次の機能があります。
public function mygallery():void
{
var gallery:File = File.applicationStorageDirectory.resolvePath("IMAGES/");
var gfiles:Array = gallery.getDirectoryListing();
var gcount:int = 0;
gcount = gfiles.length;
var x_counter:Number = 0;
var y_counter:Number = 0;
createContainer();
callThumbs();
function createContainer():void
{
container_mc = new MovieClip();
container_mc.x = gx;
container_mc.y = gy;
//container_mc.width = gthumbw;
//container_mc.height = gthumbh;
addChild(container_mc);
}
function callThumbs():void
{
for (var j:uint = 0; j < gcount; j++)
{
var thumb_url = gfiles[j].nativePath;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.x = (gthumbw+gspw)*x_counter;
thumb_loader.y = (gthumbh+gsph)*y_counter;
if (x_counter+1 < gcol)
{
x_counter++;
}else
{
x_counter = 0;
y_counter++;
}
//trace(gfiles[j].nativePath);
}
}
function thumbLoaded(e:Event):void
{
var my_thumb:Loader = Loader(e.target.loader);
my_thumb.width = gthumbw;
my_thumb.height = gthumbh;
container_mc.addChild(my_thumb);
}
}
を
gcountはフォルダ内の正しいファイル数を返しますが、何らかの理由で画像がまったく表示されません。
私はこれをWindowsで実行するとうまくいきます。それはAndroid用のサンドボックス問題か、ファイルパスを間違って使っていると思います。
Loaderを使用している場合何かアドバイスが大幅に
さて、あなたはローダーだけではなく、完全なイベントでエラーを聞くことによって開始することができます。私の答え[ここ](http://stackoverflow.com/a/32077648/1457439)の最初の部分を参照してください。また、個人的なメモだけで、インライン関数はAS3では避けるのが最善です。 – BadFeelingAboutThis
こんにちは、助けてくれてありがとうございました。 IOErrorEventをリッスンするとエラー#2035が発生します。どのように私はパスを指していますか? "app-storage:// IMAGES/?? – cnapsys
おそらく' gFiles [j] .nativePath'の代わりに 'gFiles [j] .url'を使うと、これはうまくいくでしょう。ネイティブパスは' File'& 'FileStream'クラス(とにかくローカルファイルの方が良いかもしれません)とurlは' file: 'スキームのサンドボックス制限を持つローダーのためのものです。 – BadFeelingAboutThis