0 Replies Latest reply on Feb 16, 2010 1:16 PM by pbesong

    import FMP XML file into Flash using Actionscript 3.0?

    pbesong

      Title

      import FMP XML file into Flash using Actionscript 3.0?

      Post

      I was hoping to find someone who works with Flash on this forum as the Adobe forum can't seem to help me.

       

      I'm having a hard time reading in the XML data I exported from FileMaker Pro (v. 8.5) into Flash. Does anyone have the AS3 code to use for this? I am exporting the XML as FMPXMLRESULT and the AS3 code I have just doesn't seem to want to talk to it. I want to loop thru and create arrays of each <DATA> object for each record. Here is the AS3 code I am using:

       

      var simXML:XML = new XML();

      simXML.ignoreWhitespace = true;

      var xmlLoader:URLLoader = new URLLoader();

      xmlLoader.addEventListener(Event.COMPLETE,init,false,0,true);

      xmlLoader.addEventListener(IOErrorEvent.IO_ERROR,onIOError,false,0,true);

       

      xmlLoader.load(new URLRequest("sim.xml"));

       

       function init(evt:Event):void {

          simXML = XML(xmlLoader.data);

          try {

      for (var i:int=0; i<=simXML.firstChild.childNodes[4].childNodes.length-1; i++) {

       

      backgroundArray.push(xDoc.firstChild.childNodes[4].childNodes[i].childNodes[0].c hildNodes[0].childNodes[0]);

               descriptionArray.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[1 ].childNodes[0].childNodes[0]);

      choice1Array.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[2].ch ildNodes[0].childNodes[0]);

      choice2Array.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[3].ch ildNodes[0].childNodes[0]);

      choice3Array.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[4].ch ildNodes[0].childNodes[0]);

                      choice4Array.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[5].c hildNodes[0].childNodes[0]);

                      questionArray.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[18] .childNodes[0].childNodes[0]);

                      titleArray.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[19].ch ildNodes[0].childNodes[0]);

                      videoArray.push(simXML.firstChild.childNodes[4].childNodes[i].childNodes[20].ch ildNodes[0].childNodes[0]);

       

                }

       

       

                } catch (err:Error) {

           trace("Could not parse loaded content as XML:\n" + err.message);

                }

      }

       

      function onIOError(evt:IOErrorEvent):void {

      trace("An error occurred when attempting to load the XML file.\n"+ evt.text);

      }

       

       

      All I ever get is the "Could not parse" message. The problem appears to be in the code that pushes the XML data into the arrays. If I create an XMLDocument object instead of an XML object, the data loads, but any quotes come in as &quot; so I think I need to use the XML object. I tried setting the text field to htmltext, but that didn't help.