Brian,
Thank you so much for your prompt reply and willingness to help.  
I'm still scratching my head as the following sequence does NOT work 
for me.
- launch app
- click Save SharedObject
- open the testSO file - I see the test string OK, but no xml
- close the app
- launch the app again
- click Retrieve SharedObject - I see the test string OK, but no xml.

I think the reason you are seeing the xml in your sequence is that 
it is still in the variable mySO at the time you click Retrieve and 
is not actually reading from local disk at that point in time.

So any other thoughts/help would be greatly appreciated.

Sorry to be such a dim bulb newbie.

Anne

--- In [email protected], "Sterling, Brian" 
<[EMAIL PROTECTED]> wrote:
>
> It worked for me.  Here is the output I see in the console window 
after
> clicking on "Save SharedObject" then "Retrieve SharedObject":
> 
>  
> 
> [SWF] C:\gemini\TestApp\bin\TestApp-debug.swf - 447,488 bytes after
> decompression
> 
> [CustomVO]test string,12345,46
> 
> [object Object]
> 
> test string
> 
> test xml data: <mytag name="test string" id="12345"/>
> 
>  
> 
> Also, you should be able to find the shared object file on your 
file
> system and see the Strings in the XML.  See
> 
http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/ww
hel
> p.htm?context=LiveDocs_Book_Parts&file=lsos_087_3.html .
> 
>  
> 
> -Brian
> 
> ________________________________
> 
> From: [email protected] 
[mailto:[EMAIL PROTECTED] On
> Behalf Of annespg
> Sent: Thursday, May 24, 2007 9:52 AM
> To: [email protected]
> Subject: [flexcoders] problems with storing XML in SharedObject
> 
>  
> 
> I just joined this forum hoping I might get an answer since 
traffic 
> on the Adobe Flex Forum seems pretty darn sparse. I'm surprised 
> since the Flash Forum is so active one can get several answers 
> within hours and on the Flex Forum one can go months and never get 
> an answer. At any rate...
> 
> I am trying to store some XML in the SharedObject, but it doesn't 
> seem to work. I think I'm getting it in there, but if I close the 
> app and then try to retrieve it, it is null. I have the following 
> test code. What the heck am I doing wrong?!?!?
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
> <http://www.adobe.com/2006/mxml> " 
> layout="absolute" creationComplete="init()">
> <mx:Script>
> <![CDATA[
> import valueObjects.CustomVO;
> import flash.net.registerClassAlias;
> 
> private var mySO:SharedObject;
> private function init():void{
> mySO = SharedObject.getLocal("testSO");
> }
> 
> private function saveSO():void{
> var obj:CustomVO = new CustomVO("test string",12345);
> var tagname:String = "mytag"; 
> var x:XML = <{tagname} name={obj.name} id={obj.id}/>; 
> var test:CustomVO = CustomVO.buildCustomVOFromXML(x);
> trace (test); //this works fine, so my x:XML variable seems fine
> mySO.data.testString = obj.name;
> mySO.data.testXMLData = x;
> // the debugger shows the data is in mySO fine at this point
> mySO.flush();
> }
> private function getSO():void{
> //if I close the application and then launch again and invoke this
> //function the testString is there OK, but the testXMLData is null
> var theData:Object = mySO.data;
> var theXML:XML = mySO.data.testXMLData; //this comes back null
> trace(theData); // shows [object Object]
> trace(mySO.data.testString);// shows 'test string'
> trace("test xml data: "+theXML.toXMLString()); // shows no data 
> }
> private function removeSO():void{
> mySO.clear();
> }
> ]]>
> </mx:Script>
> <mx:Button x="175" y="101" label="Save SharedObject" click="saveSO
> ()"/>
> <mx:Button x="175" y="165" label="Retrieve SharedObject" 
click="getSO
> ()"/>
> <mx:Button x="175" y="235" label="Remove SharedObject" 
> click="removeSO()"/>
> 
> </mx:Application>
> 
> package valueObjects{
> [Bindable]
> public class CustomVO{
> public var name:String;
> public var id:Number;
> public var timeStamp:Number;
> 
> public function CustomVO(name:String,id:Number){
> this.name = name;
> this.id = id;
> this.timeStamp = new Date().milliseconds;
> }
> public function toString():String{
> return ("[CustomVO]" +name+","+id+","+timeStamp);
> }
> public static function buildCustomVOFromXML(item:XML):CustomVO{
> var v:CustomVO = new CustomVO([EMAIL PROTECTED], [EMAIL PROTECTED]);
> 
> return v;
> }
> }
> }
>


Reply via email to