AS3 OOP Null Reference - Simple Stupid Problem


package{                                                
    import flash.display.MovieClip;                        
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import fl.motion.easing.Quintic;
    import flash.display.Stage;
    import flash.ui.Keyboard;
 
    public class Script extends MovieClip{                
 
    private const gravity:int = 1;
    private const max_speed:int = 8;
 
    private const walkspeed:int = 4;
    private const jumpspeed:int = 20;
 
    private const start_x:int = 50;
    private const start_y:int = 50;
 
    private var y_speed:int;
    private var x_speed:int;
 
    private var left:Boolean;
    private var up:Boolean;
    private var right:Boolean;
    private var space:Boolean;
    private var can_jump:Boolean;
 
    private var level:Array = new Array();
    private var tiles:Array = new Array();
    private var studpoengs:Array = new Array();    
    private var teller_studpoeng:int = 0;
    var mv_stilling = new Studpoengteller; 
    private var Map_data:Data = new Data;                // opprett Data objektet med brett oppbygging 
    private var Hero:hero = new hero;
 
        public function Script(){                        // constructor            
            BuildMap();
            create_hero();
            addEventListener(Event.ENTER_FRAME, main);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
            stage.addEventListener(KeyboardEvent.KEY_UP, key_up);            
        }
 
        private function main(event:Event){
            update_hero();
        }
 
        private function key_down(event:KeyboardEvent){
            if(event.keyCode == 37){
                left = true;
            }
            if(event.keyCode == 38){
                up = true;
            }
            if(event.keyCode == 39){
                right = true;
            }
        }
 
        private function key_up(event:KeyboardEvent){
            if(event.keyCode == 37){
                left = false;
            }
            if(event.keyCode == 38){
                up = false;
            }
            if(event.keyCode == 39){
                right = false;
            }
        }
 
 
 
/*
Hovedspiller funskjonalitet
*/
        private function create_hero(){
            addChild(Hero);
            Hero.x = start_x;
            Hero.y = start_y;
        }
 
        private function update_hero(){
            y_speed += gravity;
            if(left){
                x_speed -= walkspeed;
            }
            if(right){
                x_speed += walkspeed;
            }
            if(up && can_jump){
                y_speed -= jumpspeed;
                can_jump = false;
            }
 
            if(y_speed > max_speed){
                y_speed = max_speed;
            }
 
 
            Hero.y += y_speed;
            Hero.x += x_speed;
            for(var t:int; t < tiles.length; t++){
                while(tiles[t].hitTestPoint(Hero.x,Hero.y + 10,true)){
                    Hero.y -= 1;
                    if(y_speed >= 0){                                    
                        can_jump = true;
                    }
                }
                while(tiles[t].hitTestPoint(Hero.x,Hero.y - 10,true)){
                    Hero.y += 1;
                    y_speed = 0;
                }
                while(tiles[t].hitTestPoint(Hero.x + 5,Hero.y,true)){
                    Hero.x -= 1;
                }
                while(tiles[t].hitTestPoint(Hero.x - 5,Hero.y,true)){
                    Hero.x += 1;
                }
            }
            x_speed = 0;
            
            for(var s:int; s < studpoengs.length; s++) {
                while(studpoengs[s].hitTestPoint(Hero.x, Hero.y, true)) {
                    removeChild(studpoengs[s]);
                    mv_stilling.updatePoeng(++teller_studpoeng);                    
                    
                    //addChild(mv_quiz);
                    //mv_quiz.gotoAndStop(1);
                    //mv_quiz.x = 50;
                    //mv_quiz.y = 50;
                }
            }
        }
 
 
/*
Brettet
*/
 
        private function BuildMap(){
            Map_data.Setup();                                                
 
            level = Map_data.level1;                                        // hent array med brett info                
 
            for(var t = 0; t < level.length; t++){
                for(var u = 0; u < level[t].length; u++){                                    
                    if(level[t][u] == 1){                                    
                        var new_tile:platform_tile = new platform_tile;        //legg til en "murstein"
 
                        addChild(new_tile);                                    //vis på skjermen
 
                        new_tile.gotoAndStop(1);
                        new_tile.x = u * 24;
                        new_tile.y = t * 24;
 
                        tiles.push(new_tile);                                //legg alt i en array
                    }
                    else if(level[t][u] == 2){
                        var new_studpoeng:studpoeng = new studpoeng;
                        
                        addChild(new_studpoeng);
                        
                        new_studpoeng.gotoAndStop(1);
                        new_studpoeng.x = u * 25;
                        new_studpoeng.y = t * 25;
                        
                        studpoengs.push(new_studpoeng);
                    }
                }
            }
            
            this.addTeller();
        }
        
        private function addTeller():void {
            addChild(mv_stilling); 
            mv_stilling.gotoAndStop(1);
            mv_stilling.x = 10;
            mv_stilling.y = 7;    
        }
    }
}

Error I’m receiving:


TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Script()

from debugger:


TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Script()[Script.as:41]

Line 41 in Script.as is:


stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);

I wasted so many hours now looking for a solution, but with no luck, so maybe someone here can help me.