4

これは私の基本的なフォルダー構造です: http://i.stack.imgur.com/l1YnV.jpg

私のコードは次のようになります。

private var xmlLoader:URLLoader=new URLLoader();
private var url:URLRequest=new URLRequest("../src/NPClist.xml");

xmlLoader.load(url);

私は以下を取得します:

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: app:/src/NPClist.xml

URLRequestコンストラクターに「../」をいくつ入れても、NPClist.xmlが.swf(bin-debug)と同じフォルダーにある場合にのみ機能し、それをコピーしてみました。「../」を無視/解決していないようです。リリース ビルドのエクスポートも試みましたが、うまくいきませんでした。興味深いのは、同様の Embeds が機能することです (assets フォルダーは src および bin-debug と同じレベルにあります)。

[Embed(source="assets/mainmenu/somefile.png")]

これが私がそれを機能させる方法です:

var xmlFile:File=new File(File.applicationDirectory.nativePath).resolvePath("../src/NPClist.xml");
var url:URLRequest=new URLRequest(xmlFile.url);

"../" は最初は機能しませんでしたが、このように使用すると機能します。


話を戻すと、これも間違っているようです。期待どおりに確実に機能する方法は次のとおりです。

インストーラーにアセットを含め、使用しています

imgFile=File.applicationDirectory.resolvePath("assets/folder/file");
urlReq=new URLRequest(imgFile.nativePath);
ldr.load(urlReq);
4

2 に答える 2

-3

URLRequestを使用してローカルファイルシステムリソースにアクセスすることはできません-URLRequestはHTTPプロトコルを使用してリソースを取得します。

URLRequestは、クロスドメインセキュリティが適用されているインターネットリソースにのみアクセスできます。

ローカルファイルを開きたい場合は、次のことを行う必要があります。

  • ユーザーにファイルを開くように明示的に強制するか、[ファイルを開く]ダイアログ(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html)を使用します。

  • または、AIRランタイムを使用します(AIRを使用すると、ローカルファイルを開くことができますが、URLRequestではなくFileクラスを使用できます)。

于 2012-09-28T19:19:13.347 に答える