0

AIR アプリケーション (CurrentFile) を公開するときに、chatFile.swf もインストール ファイルに含めました。AIR 設定パネル [AIR 3.7 for Desktop] の [Include Files] の下に、次のものがあります。

  • 現在のファイル.swf
  • CurrentFile-app.xml
  • チャットファイル.swf

CurrentFile.swf の AS3 コードは次のとおりです。

import flash.net.URLRequest;
import flash.events.Event;    
import flash.display.Loader;
import flash.filesystem.File;
var chatLoaderWindow:Loader;    
    function loadchat(m:MouseEvent):void
    {

        chatLoaderWindow = new Loader();
        chatLoaderWindow.contentLoaderInfo.addEventListener(Event.COMPLETE, chatLoadComplete);
        chatLoaderWindow.contentLoaderInfo.addEventListener(Event.INIT, chatInitLoad);
        chatLoaderWindow.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, chatErrorLoad);
        chatLoaderWindow.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, chatHttpStatus);
        myclip.chatwindow.addChild(chatLoaderWindow);
        var f:File = File.applicationStorageDirectory.resolvePath("chatFile.swf");
        chatLoaderWindow.load(new URLRequest(f.url));
        tracebox.text = "Chat URL" + f.url;
    }
    function chatLoadComplete(e:Event):void
    {
        tracebox.text = "chat loaded";

    }
    function chatErrorLoad(io:IOErrorEvent):void
    {
        tracebox.text = "chat IO Error: "+io;

    }
    function chatInitLoad(i:Event):void
    {
        tracebox.text = "chat INIT";

    }
    function chatHttpStatus(e:HTTPStatusEvent):void
    {
        tracebox.text = "chat Http"+e;

    }
    myclip.chatbut.addEventListener(MouseEvent.CLICK,loadchat);


    /*
    Output:
    chat IO Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2035" errorID=2035]

編集:私はそれを理解しました。本当にシンプルでした

これは必須ではありません:

var f:File = File.applicationStorageDirectory.resolvePath("chatFile.swf");
chatLoaderWindow.load(new URLRequest(f.url));

これを挿入します:

chatLoaderWindow.load(new URLRequest("app:/chatFile.swf"));

だから今私の質問は: File.applicationStorageDirectory.resolvePath の目的は何ですか?

4

2 に答える 2

0

ここには 2 つのディレクトリがあります。1 つは、インストール ファイルが置かれる「アプリケーション」ディレクトリです。1 つは "application-storage" ディレクトリで、実行時にファイルを書き込むのに便利な場所です。これらのディレクトリにアクセスするには、File.resolvePath() 関数を使用するか、URI スキームのショートカット app: または app-storage: を使用します。最初の試行では、ファイルの間違ったディレクトリを探していました。

于 2013-06-14T16:53:26.670 に答える
0

File.applicationStorageDirectory.resolvePath("somefile.swf").url は "app-storage:/somefile.swf" と等しくなります

File.applicationDirectory.resolvePath("somefile.swf").url は "app:/somefile.swf" と等しくなります

アプリケーション ディレクトリは、アプリがインストールされた場所です。アプリ ストレージ ディレクトリは、アプリがファイルを保存できるフォルダーです。

resolvePath() はファイル オブジェクトを返します。fileObj.exists や fileObj.parent.createDirectory() など、ファイルの場所のクロスプラットフォーム URL を取得する以外の目的で使用できます。fileObj.url は、プラットフォームに依存しない方法でファイルにアクセスするために URLLoader で使用する URL です。

于 2015-08-21T14:59:09.370 に答える