HERES WHAT IM DOING import ContentReader; import flash.events.Event; var theReader = new ContentReader("content.xml"); //wait till it's done loading theReader.addEventListener(Event.COMPLETE, traceOut, false, 0, true); function traceOut($evt:Event):void{ trace(theReader.getNumberOfPages()); } HERES THE CLASS package{ import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.*; public class ContentReader extends URLLoader{ private var contentFile:String; private var xmlFile:XML; private var numberOfPages:int; public function ContentReader(contentFile:String){ this.contentFile = contentFile; load(new URLRequest(contentFile)); this.addEventListener(Event.COMPLETE, loadCompleted); } public function loadCompleted(e:Event){ e.target.getData(); //trace(temp..item[0].title); //trace(numberOfPages); //trace(data); } public function getData(){ var temp:XML = new XML(data); xmlFile = temp; this.numberOfPages = xmlFile..item.length(); //trace(data); trace(numberOfPages); //returns 4 } public function getTitle(item:int):String{ return (xmlFile..item[item].title); } public function getContent(item:int):String{ return(xmlFile..item[item].text); } public function getNumberOfPages():int{ return numberOfPages; //returns 0 } } }