0

アプリ内から収集したデータを、付随する .xml という名前の外部 xml ファイルに保存しようとしていますdata.xml。私はfileReference.saveメソッドを使用していますが、それは仕事をしていないようです:

function parseXML(xmlData:XML):void
{
    trace("Parsing:");
    trace("-----------------");
    var itemIndex:uint = event.currentTarget.index;
    delete data.item[itemIndex];
    fileReference.save(data, "data.xml");
    trace(xmlData);
}

残念ながら、これにより「名前を付けて保存」ダイアログボックスがポップアップし、ユーザーに xml ファイルを保存する場所を尋ねます (私が本当にしたいのは、プロジェクトのディレクトリにある data.xml ファイルを自動的に上書きすることである場合)。ユーザーの側で何を言っても)。

それが進むべき道だと聞いたことFileStreamがありますが (特に Air for iOS にこれを展開する予定です)、それを実装する方法がわかりません。

何か案は?

編集:以下の提案で質問を更新しましたが、まだ機能しません。ファイルは、デスクトップの「RecipeMatcher2」という同じディレクトリにあります。data.xmlつまり、/Desktop/RecipeMatcher2/ (Mac OS X を使用しています) ですが、iPhone でファイルが保存されるパスに解決することも必要です。

function parseXML(xmlData:XML):void
{
    trace("Parsing:");
    trace("-----------------");
    var itemIndex:uint = event.currentTarget.index;
    file = File.applicationStorageDirectory;
    file = file.resolvePath("data.xml");
    delete data.item[itemIndex];
    var writeStream:FileStream = new FileStream();
    writeStream.open(file, FileMode.WRITE);
    writeStream.writeUTFBytes(data.toXMLString());
    writeStream.close();
    trace('xml file saved');
}

私はもともと次のようにxmlデータをロードします:

loader = new URLLoader();
// listens to see if data has fully loaded//
loader.addEventListener(Event.COMPLETE, dataLoaded);
//loads local xml file with URLrequest method//
loader.load(new URLRequest("data.xml"));

そして、これがこの質問に関連する私の公開変数です:

public var loader:URLLoader;
public var file:File;
public var data:XML;
public var items:XMLList;
4

1 に答える 1