var xml:XML = <myXml>
<item prop="1" />
<item prop="2" />
</myXml>;
ローカルハードディスク(プロジェクトディレクトリ)にxmlファイルとして保存する必要があります。AS3でXMLファイルを保存することができます
as3自体で保存することはできますか?
var xml:XML = <myXml>
<item prop="1" />
<item prop="2" />
</myXml>;
ローカルハードディスク(プロジェクトディレクトリ)にxmlファイルとして保存する必要があります。AS3でXMLファイルを保存することができます
as3自体で保存することはできますか?
申し訳ありませんが、あなたの質問はあまり明確ではありません。
AS3で書かれたコンパイルSWF内からファイルをハードドライブに保存できるかどうか尋ねていますか?
または、変数として書き出すことなく、生のXMLファイルをAS3プロジェクトに含めることができるかどうかを尋ねていますか?
前者の場合は、Adobe AIRを使用していなくても、それを意味します。データはSharedObjectとしてローカルに保存できますが、ファイルシステム内の任意のファイルとして保存することはできません。
後者の場合は、別のリソース(画像や音声など)を埋め込むのと同じようにファイルを埋め込む必要があります。しかし、Flashには、これを行う方法を理解するための簡単なバグが存在するようです。
This link might be of help to you.
[Embed(source='../../../../assets/levels/test.xml', mimeType="application/octet-stream")]
public static const Level_Test:Class;
そしてXMLパースする:これらの質問のいずれもが、あなたが実際に求めていたものである場合に
var ba:ByteArray = (new Levels.Level_Test()) as ByteArray;
var s:String = ba.readUTFBytes(ba.length);
xml = new XML(s);
謝罪を。
乾杯!
私はこれを一緒に投げましたが、最小限の例として以下を使って.XMLに保存することができます。
package com.hodgedev.xmlcreator
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.ByteArray;
import flash.net.FileReference;
/**
* ...
* @author Brian Hodge ([email protected])
*/
public class Main extends Sprite
{
private var _xml:XML;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//Calling the save method requires user interaction and Flash Player 10
stage.addEventListener(MouseEvent.MOUSE_DOWN, _onMouseDown);
_xml= <xml>
<test>data</test>
</xml>;
}
private function _onMouseDown(e:MouseEvent):void
{
var ba:ByteArray = new ByteArray();
ba.writeUTFBytes(_xml);
//ba.
var fr:FileReference = new FileReference();
fr.addEventListener(Event.SELECT, _onRefSelect);
fr.addEventListener(Event.CANCEL, _onRefCancel);
fr.save(ba, "filename.xml");
}
private function _onRefSelect(e:Event):void
{
trace('select');
}
private function _onRefCancel(e:Event):void
{
trace('cancel');
}
}
}
注意すべきいくつかのものがあります。
FileReference
クラスの保存メソッドを使用する必要があります。上記では、保存プロンプトを呼び出すために必要なUSER INTERACTIONとして機能するステージ上のMouseEvent.MOUSE_DOWN
をリッスンします。
Iセットアップコード内の基本的なXML構造(これは通常から来て、外部ソースとの両方の方法を正常に動作しますします。
ByteArray
が作成され、XMLがByteArray
に書かれている。
FileReference
クラスのsaveメソッドはByteArray
で、デフォルトの保存名を2つのパラメータとして渡す必要があります。
こちらがお役に立てば幸いです。
私はこの記事が古いことを知っていますが、これはまさに私が必要とする答えです。forループを使ってxmlを書くにはどうすればいいですか?例えば。私はテクスチャのデータを含む2D配列を持っています。私は、テクスチャXMLマップに基づいて衝突のXMLマップを作成したいと思います。 どうすればいいですか? 'var xml:XML = /* forループ*/'? – DevITper
forループを使って実際のxmlを構築し、彼女を送ります! var s:文字列。 //必要ならば、フラッシュはそれを使用しませんが、ファイルがフロントエンドとバックエンドの間で共有されている場合は、そのタグを持つことをお勧めします。 –
s = "<?xml version =" 1.0 "encoding =" utf-8 ">"; s.appendText( ""); //自由にループすることができます。 for(var i:int; i
あなたの質問はあまり明確ではありませんでしたが、答えは必要なものでした。ありがとう! –