ロードしたXMLデータをSharedObjectに格納します。
XMLデータをSharedObjectに格納して自由に呼び出す処理は汎用性の高い処理です。
例題
SharedObjectを複数生成し、配列に代入。
XMLをロードし。ロードが完了したらXMLをSharedObjectに代入するボタンを生成するメソッドにアクセス。
下のボタンをクリックすると配列内のSharedObjectにXMLを代入。
下のボタンをクリックしてから上のボタンをクリックすると配列内のSharedObjectの内容が出力される。
ソースコード
var so1:SharedObject=SharedObject.getLocal("so1XML")//最初にsp1XMLへの共有オブジェクトにアクセス。無い場合は生成される
var so2:SharedObject=SharedObject.getLocal("so2XML")//最初にsp2XMLへの共有オブジェクトにアクセス。無い場合は生成される
var so3:SharedObject=SharedObject.getLocal("so3XML")//最初にsp3XMLへの共有オブジェクトにアクセス。無い場合は生成される
var soArr:Array=new Array();
soArr.push(so1);
soArr.push(so2);
soArr.push(so3);
trace("soArr="+soArr);
var sample_xml:XML;
var xml_ulo:URLLoader=new URLLoader();
xml_ulo.addEventListener(Event.COMPLETE,completeSharedXMLHandler)
xml_ulo.load(new URLRequest("xml/advset.xml"));
function completeSharedXMLHandler(evt:Event) { sample_xml=new XML(evt.target.data); //XMLを総て読み込んだので、SharedObjectにXMlを代入するボタンと、SharedObjectの中身を参照するボタンを生成 createBtn() }
function prevSharedObject1Handler(evt:Event) { trace("共有オブジェクトso1は"+soArr[0].data.xmlString); }
function createBtn(){
var prevSo1_sp:Sprite=new Sprite();
prevSo1_sp.graphics.beginFill(0x000000);
prevSo1_sp.graphics.drawRect(0,0,300,50);
prevSo1_sp.graphics.endFill();
prevSo1_sp.addEventListener(MouseEvent.CLICK,prevSharedObject1Handler)
var prevText_txt:TextField=new TextField();
prevText_txt.selectable=false;
prevText_txt.textColor=0xFFFFFF;
prevText_txt.text="XMLデータを格納したSharedObjectをプレビュー";
prevText_txt.autoSize=TextFieldAutoSize.LEFT;
prevSo1_sp.addChild(prevText_txt);
addChild(prevSo1_sp);
var inputSo1_sp:Sprite=new Sprite();
inputSo1_sp.graphics.beginFill(0x000000);
inputSo1_sp.graphics.drawRect(0,0,300,50);
inputSo1_sp.y=200;
inputSo1_sp.graphics.endFill();
var inputText_txt:TextField=new TextField();
inputText_txt.selectable=false;
inputText_txt.textColor=0xFFFFFF;
inputText_txt.text="SharedObjectにXMLを代入";
inputText_txt.autoSize=TextFieldAutoSize.LEFT;
inputSo1_sp.addChild(inputText_txt);
inputSo1_sp.addEventListener(MouseEvent.CLICK,inputXMLSharedObjectHandler)
addChild(inputSo1_sp);
}
function inputXMLSharedObjectHandler(evt:Event) { trace("xmlを代入") soArr[0].data.xmlString=sample_xml; trace("Shardobjectのdata.xmlStringプロパティのデータ型 = "+typeof soArr[0].data.xmlString) }
|