Return value from an event?

In my main i am trying to return the value of what is inside the text file applied to the value terrainArray.

levelData = l1.GimmiData();

If i try to call the method it will return the value i first declared of the Array.
I have wasted a few days of reading trying to figure out ways to get this value back to the main and as an Array as other ways i have tried give me Implicit coercion errors.
Ive tried many different ways and the code below has changed many times.
I am thinking i am missing something simple but i am totally stuck.
I even thought of using a psuedo threads style approach since it seems the value is called before load finish’s but i could not get it to work.
Any help is much appreciated.
My java style approaches have failed miserably.

package scripts.levels{
    import flash.events.*;
    import flash.net.URLLoader;
    import flash.net.URLRequest;

    dynamic public class level1 {
        public var mapData:Array = new Array(1,2);
        public var terrainArray:Array = new Array(); //test data to see where it ends up
    
        public function loadStuff() {
            var url:String = "txt/maps/map1.txt";
            var loadit:URLLoader = new URLLoader();
            loadit.addEventListener(Event.COMPLETE, completeHandler);
            loadit.load(new URLRequest(url));
        }
        
        public function completeHandler(e:Event) {
            terrainArray = e.target.data.split(/\ /);//split every space
            //text file contains text one,two,three,four
            trace(terrainArray) //returns one,two,three,four
            trace(terrainArray[1]) //will return two
            return terrainArray
        }
        public function GimmiTerrain() {
            return terrainArray; 
        }
        public function  GimmiData() {
            return mapData;
        }
    }
}

Note: the .txt file is plain text and for this simple .txt file xml will only complicate things.
At most there will only be about 20 words nested in the txt file.