as3 removeChild错误

这是我的课 主-创建预加载器 预加载器-createas网站 网站-创建MainMenu 单击主菜单中的按钮时,它将创建一个对象。当单击另一个对象时,该对象需要删除。拆卸部分有点混乱。
package src 
{
import com.greensock.TweenLite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.Point;
/**
$(CBI)* ...
$(CBI)* @author servet
$(CBI)*/
public class MainMenu extends MovieClip
{
    public var filmlerButton:MovieClip;
    public var filmleralt:FilmAltButtonlar;

    private var ANASAYFA_ORIGINAL_Y:Number;
    private var HAKKIMIZDA_ORIGINAL_Y:Number;
    private var FILMLER_ORIGINAL_Y:Number;
    private var DAGITIM_ORIGINAL_Y:Number;

    private var state:String;

    public function MainMenu() 
    {
        init();
    }

    private function init():void 
    {
        repos();
        assignOriginalHeights();
        state = \" \";

        filmlerButton.filmlerhitarea.alpha = 0;

        anasayfaButton.addEventListener(MouseEvent.CLICK, onAnasayfaClick);
        hakkimizdaButton.addEventListener(MouseEvent.CLICK, onhakkimizdaClick);
        filmlerButton.filmlerhitarea.addEventListener(MouseEvent.CLICK, onfilmlerClick);
        dagitimButton.addEventListener(MouseEvent.CLICK, ondagitimClick);
    }

    private function assignOriginalHeights():void 
    {
        ANASAYFA_ORIGINAL_Y = anasayfaButton.y;
        HAKKIMIZDA_ORIGINAL_Y = hakkimizdaButton.y;
        FILMLER_ORIGINAL_Y = filmlerButton.y;
        DAGITIM_ORIGINAL_Y = dagitimButton.y;

        //trace(ANASAYFA_ORIGINAL_Y, HAKKIMIZDA_ORIGINAL_Y, FILMLER_ORIGINAL_Y, DAGITIM_ORIGINAL_Y);
    }

    private function ondagitimClick(e:MouseEvent):void 
    {
        if (state != \"anasayfa\"&&state!=\"hakkimizda\"&&state!=\"filmler\"&&state!=\"dagitim\") {
            state = \"dagitim\";
            traceState();

            dagitimButton.gotoAndStop(2);
        }else {
            state = \" \";
            traceState();

            closeAllMenus();
        }
    }

    private function onfilmlerClick(e:MouseEvent):void 
    {
        if (state != \"anasayfa\"&&state!=\"hakkimizda\"&&state!=\"filmler\"&&state!=\"dagitim\") {
            closeAllMenus();
            state = \"filmler\";
            traceState();

            filmlerButton.gotoAndStop(2);

            filmleralt = new FilmAltButtonlar();
            addChild(filmleralt);
            filmleralt.name = \"trouble\";
            //OBJECT ADDED HERE

            TweenLite.to(dagitimButton, 1, {y:DAGITIM_ORIGINAL_Y+400 } );
        }else {
            state = \" \";
            traceState();

            closeAllMenus();
        }
    }

    private function onhakkimizdaClick(e:MouseEvent):void 
    {
        if (state != \"anasayfa\"&&state!=\"hakkimizda\"&&state!=\"filmler\"&&state!=\"dagitim\") {
            closeAllMenus();
            state = \"hakkimizda\";
            traceState();

            hakkimizdaButton.gotoAndStop(2);

            TweenLite.to(filmlerButton, 1, {y:FILMLER_ORIGINAL_Y+200 } );
            TweenLite.to(dagitimButton, 1, {y:DAGITIM_ORIGINAL_Y+200 } );
        }else {
            state = \" \";
            traceState();

            closeAllMenus();
        }
    }

    private function onAnasayfaClick(e:MouseEvent):void             //&& girecek
    {
        if (state != \"anasayfa\"&&state!=\"hakkimizda\"&&state!=\"filmler\"&&state!=\"dagitim\") {
            closeAllMenus();
            state = \"anasayfa\";
            traceState();

            anasayfaButton.gotoAndStop(2);

            TweenLite.to(hakkimizdaButton, 1, {y:hakkimizdaButton.y+200 } );
            TweenLite.to(filmlerButton, 1, {y:filmlerButton.y+200 } );
            TweenLite.to(dagitimButton, 1, {y:dagitimButton.y+200 } );
        }else {
            state = \" \";
            traceState();

            closeAllMenus();
        }
    }

    private function closeAllMenus() {
        TweenLite.to(hakkimizdaButton, 1, {y:HAKKIMIZDA_ORIGINAL_Y } );
        TweenLite.to(filmlerButton, 1, {y:FILMLER_ORIGINAL_Y } );
        TweenLite.to(dagitimButton, 1, { y:DAGITIM_ORIGINAL_Y } );

        anasayfaButton.gotoAndStop(1);
        hakkimizdaButton.gotoAndStop(1);
        filmlerButton.gotoAndStop(1);
        dagitimButton.gotoAndStop(1);

        //NEED TO REMOVE OBJECT HERE
        //BUT THIS FUNCTION GETS CALLED A LOT 
        //SO I NEED TO CHECK IF THE OBJECT EXISTS 
        //BEFORE TRYING TO REMOVE TO AVOID AN NULL
        //OBJECT REFERENCE SO I DO:
        if (getChildByName(filmleralt.name) != null) {
            removeFilmleralt();
        }

    }

    private function removeFilmleralt() {
        Main.instance.narfilm.mainmenu.removeChild(filmleralt);
    }

    private function traceState() {
        trace(\"current state is: \"+state);
    }

    public function repos():void                //call on stage resize so it aligns to left babs
    {
        x = Main.instance.canvaswidth;
    }

}
}
重要部分:
    //NEED TO REMOVE OBJECT HERE
    //BUT THIS FUNCTION GETS CALLED A LOT 
    //SO I NEED TO CHECK IF THE OBJECT EXISTS 
    //BEFORE TRYING TO REMOVE TO AVOID AN NULL
    //OBJECT REFERENCE SO I DO:
    if (getChildByName(filmleralt.name) != null) {
        removeFilmleralt();
    }
这是我得到空对象引用错误的部分。 我想念什么?     
已邀请:
        好吧,我猜想实际的错误发生在函数removeFilmleralt()中。并且,您尝试删除与所提到的函数相同类中已初始化的实例(并且具有作用于filmleralt的实例),您不需要:
Main.instance.narfilm.mainmenu.removeChild(filmleralt);
但只要3英镑就能完成工作。我猜测\“ Main \”对象实际上导致了错误,该错误未在任何地方初始化并且没有作用域。 尝试在设置中使用\“ permit debugging \”,这样您就可以准确知道发生哪一行错误。但是,由于垃圾回收,请不要忘记在释放时禁用此选项。     

要回复问题请先登录注册