This example shows what to include and some sample code for loading xml data in an AS3 class.
You can use the URLLoader class to load the xml :
var myXML:XML = new XML(); var XML_URL:String = "http://www.example.com/Sample3.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); var myLoader:URLLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", xmlLoaded); function xmlLoaded(event:Event):void { myXML = XML(myLoader.data); trace("Data loaded."); }
Include the following :
// import the following: import flash.events.Event; import flash.net.*;
After loading the xml file you can loop through it's data using E4X syntax.
Here's an example. Assuming the loaded xml file looks like this:
<game> <level> <leveltitle>Dieren</leveltitle> <identifyme> <title>Leeuw</title> <image>data/images/lion.jpg</image> <sound>data/sounds/lion3.wav</sound> <symbol>L</symbol> </identifyme> <identifyme> <title>Tijger</title> <image>data/images/tiger-picture.jpg</image> <sound>data/sounds/lion3.wav</sound> <symbol>L</symbol> </identifyme> </level> <level> <leveltitle>Dieren II</leveltitle> <identifyme> <title>Varken</title> <image>data/images/pig.jpg</image> <sound>data/sounds/pig.wav</sound> <symbol>V</symbol> </identifyme> <identifyme> <title>Olifant</title> <image>data/images/olifant.jpg</image> <sound>data/sounds/elephant.wav</sound> <symbol>O</symbol> </identifyme> </level> </game>
A sample ActionScript 3 class loading and processing this:
package { import flash.display.*; import flash.events.*; import flash.net.*; public class Main extends MovieClip{ private var levelXML:XML; private var myLoader:URLLoader; public function Main(){ levelXML = new XML(); var XML_URL:String = "data/data.xml"; var myXMLURL:URLRequest = new URLRequest(XML_URL); myLoader = new URLLoader(myXMLURL); myLoader.addEventListener("complete", startApp); } private function startApp(eventDataLoaded:Event){ levelXML = XML(myLoader.data); for each (var level:XML in levelXML.level){ trace(level.leveltitle); trace(level.identifyme); } } } }