0

データベースに接続するflexアプリケーションがあります。データベースが実行されるサーバーはいくつかあります。現在、ユーザーが接続するデータベースを指定できるテキストボックス「host」と「port」があります。ホストのリストを含むComboBoxに変更したいと思います。アプリケーションでハードコーディングする方法は知っていますが、アプリケーションが起動時にxml(またはその他の)ファイルを読み取り、ComboBoxにその内容を入力することをお勧めします(データベースのIPが将来変更される場合に備えて)。XMLは次のようになります。

<root>
   <host ip="123.123.123.123" port="1234"/>
   <host ip="255.255.255.123" port="2700"/>
   <host ip="18.12.65.123" port="1270"/>
</root>

それ、どうやったら出来るの?アプリケーションと一緒にサーバー上でファイルをホストしたいと思います。

4

1 に答える 1

0

(クラスを使用して)サーバーからファイルをロードする必要がありますURLLoader。その後、ローダーのデータを読み取ることができます。

例えば:

private var loader:URLLoader;
private function init():void {
    loader=new URLLoader();
    loader.addEventListener(Event.COMPLETE, dataLoaded);
    loader.dataFormat=URLLoaderDataFormat.TEXT;
    var req:URLRequest=new URLRequest("http://my-server/path/to/file");
    loader.load(req);
}

private function dataLoaded(e:Event):void {
    loader.removeEventListener(Event.COMPLETE, dataLoaded);
    var data:String=loader.data;

    //If the file is a flat text file (with 123.123.123.123:1234 on each line)
    var lines:Array=data.split("\n");
    for each(var line:String in lines) {
        var i:Array=line.split(":");
        trace("ip: " + i[0]);
        trace("\nport: " + i[1]);
    }

    //If the file is an xml, do this
    var x:XML=new XML(data);
    for each(var host:XML in x.host) {
        trace("ip: " + host.@ip);
        trace("\nport: " + host.@port);
    }
}

はい、相対URLを使用できます

于 2012-08-09T12:00:50.753 に答える