Xml image gallery trouble

I’m trying to create an xml image gallery at the moment. I’ve made it so it works but I’m now cleaning the code and I want to separate the navigation into a class of its own. Here is the Gallery class…


package _classes{

    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.Event;

    import _classes.media.displays.ImageDisplay;
    import _classes.media.controllers.ImageController;

    public class Gallery extends Sprite {

        private var _xmlLoader:URLLoader = new URLLoader();
        private var _xmlData:XML;
        public var pImageList:XMLList;

        public function Gallery() {
            initStage();
            loadContent();
        }
        
        private function loadContent():void {
            _xmlLoader.addEventListener(Event.COMPLETE, onContentLoaded);
            _xmlLoader.load(new URLRequest("gallery.xml"));
        }
        
        private function initStage():void {
            stage.frameRate = 61;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
        }
        
        private function onContentLoaded(event:Event):void {
            _xmlData = _xmlData = new XML(event.target.data);
            pImageList = _xmlData.image.imagePath;
            initController();
        }
        
        private function initController():void {
            var imageController:ImageController = new ImageController(pImageList);
            addChild(imageController);
        }
    }
}

ImageController class


package _classes.media.controllers{

    import flash.display.Sprite;
    import flash.events.MouseEvent;

    import _classes.media.displays.ImageDisplay;

    public class ImageController extends Sprite {

        private var _imageCurrPos:Number = 1;

        public function ImageController(pImageList:XMLList) {
            
            var navBack:NavBack = new NavBack();
            addChild(navBack);
            navBack.x = 0;
            navBack.y = 373;

            var prevButton:PrevButton = new PrevButton();
            addChild(prevButton);
            prevButton.x = 0;
            prevButton.y = 373;
            prevButton.addEventListener(MouseEvent.MOUSE_DOWN, previousClick);

            var nextButton:NextButton = new NextButton();
            addChild(nextButton);
            nextButton.x = stage.stageWidth - nextButton.width;
            nextButton.y = 373;
            nextButton.addEventListener(MouseEvent.MOUSE_DOWN, nextClick);

            var navContainer:Sprite = new Sprite();
            addChild(navContainer);
            navContainer.y = 374;

            for (var i:uint = 1; i <pImageList.length() + 1; i++) {
                var imageElement:XML = pImageList*;
                var button:ImageButton = new ImageButton();
                navContainer.addChild(button);
                button.addEventListener(MouseEvent.MOUSE_DOWN, onMouseClick);
                button.x = i * 18;
                button.useHandCursor = true;
                button.buttonText.text = String(i);
            }
            navContainer.x = stage.stageWidth - (navContainer.width + prevButton.width + 20);

            function onMouseClick(event:MouseEvent):void {
                var image:ImageDisplay = new ImageDisplay(pImageList[(event.target.text) - 1]);
                addChild(image);
                _imageCurrPos = Number(event.target.text);
                trace(_imageCurrPos);
            }
            function previousClick(event:MouseEvent):void {
                var image:ImageDisplay = new ImageDisplay(pImageList[_imageCurrPos - 1]);
                addChild(image);
                _imageCurrPos = _imageCurrPos - 1;
                trace(_imageCurrPos);
            }
            function nextClick(event:MouseEvent):void {
                var image:ImageDisplay = new ImageDisplay(pImageList[_imageCurrPos + 1]);
                addChild(image);
                _imageCurrPos = _imageCurrPos + 1;
                trace(_imageCurrPos);
            }
        }
    }
}

I’m trying to pass a public XMLList variable from the gallery to the controller and I get this error…


TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at _classes.media.controllers::ImageController$iinit()
    at _classes::Gallery/::initController()
    at _classes::Gallery/::onContentLoaded()
    at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/flash.net:URLLoader::onComplete()

Any help would be greatly appreciated…

David