1

次のコードは、私が取り組んでいるより大きなプロジェクトのスニペットです。問題は、Flash CS6 でアプリをテストすると、urlLoader は 25Notes.txt を完全に読み取りますが、Android デバイス (HTC Incredible) urlLoader で (Flash に組み込まれている「Debug > Debug Movie > On Device via USB」を介して) アプリをデバッグしようとするとストリーム エラー #2032 をスローします。

Flash CS6 を使用して AIR 3.2 からキャプティブ ランタイムを使用してアプリを展開していますが、プロジェクトは不要なファイルやフォルダーなしで編成されています。

洞察や提案があれば、さらに説明やコードが必要な場合はお知らせください。

また、Flash CS6 のキャプティブ ランタイムがルート プロジェクト フォルダー内のすべてのローカル ファイルをパッケージ化するのか、それともアプリで使用されるファイルだけをパッケージ化するのか、まったくパッケージ化しないのかについてもわかりません。これに関する情報も大歓迎です。

    var FILE_LIST_PATH:String = "/25Notes/25Notes.txt";
var mp3List:Array = new Array();

LoadFile();

function LoadFile()
{
    var urlRequest:URLRequest = new URLRequest(FILE_LIST_PATH);
    var urlLoader:URLLoader = new URLLoader();

    urlLoader.addEventListener(Event.COMPLETE, processTextFile);
    urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
    urlLoader.load(urlRequest);
}

function onIOError(e:IOErrorEvent){
    trace("can't load file list:   " + e);
}


function processTextFile(event:Event):void
{
    var loader:URLLoader = URLLoader(event.target);
    var textFile:String = loader.data;
    mp3List = textFile.split("\n");
    for (i=0;i<mp3List.length;i++){
        trace(mp3List[i],i);
    }
}

IOError トレースが返す内容は次のとおりです。

can't load file list:   [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: app:/25Notes/25Notes.txt" errorID=2032]

私は完全に困惑しています。助けてください!!

4

1 に答える 1

1

ファイルは実行時にアプリによって保存されており、それを取得しようとしていますか? そうでない場合、その URL は正しくありません。app:/ディレクトリは、アプリ自体内の場所ではなく、デバイス上の applicationStorageDirectory です。txtファイルをクラスとして埋め込み、その方法でアクセスする必要があります

[Embed(source="assets/ui/images/phone/menu-myvideos-active-160.png")]
var MyVideosActive160:Class;

これは、私が実際に現在仕上げに取り組んでいるプロジェクトからのものです。これにより、画像が埋め込まれ、後でアクセスできるようになります。それにアクセスするには、単に

var bmp:Bitmap = new MyVideosActive160();

埋め込まなければ、実際にファイルにアクセスできるとは思えません。アプリ内に含める必要があるすべてのファイルを埋め込む必要があります。

ある時点で実行時にファイルを保存する場合は、この方法で保存する必要があります

var path:String = new File(new File.applicationStorageDirectory.resolvePath("/25Notes/25Notes.txt").nativePath).url;

file:///を使用した URL ではなく、URLが出力されますapp:/。この方法を使用して、ダウンロードしたビデオをアプリで再生しています。Adobe が SDK に組み込むべきだったのは、くだらない回避策ですが、それは私たちが対処しなければならないことです。

于 2012-11-07T23:17:40.300 に答える