Flash:AS3——setChildIndex问题

Flash:AS3——setChildIndex问题,flash,actionscript,Flash,Actionscript,我使用setChildIndex将按钮悬停在屏幕上时移动到屏幕的前面,但我创建了一个“后退”按钮,以便在时间轴中将电影后退几帧以查看上一个屏幕。我的问题是,当我使用“后退”按钮返回到时间线中的该点时,setChildIndex按钮仍保留在屏幕上。下面的脚本显示了我的按钮,然后是后退按钮。如何使“后退”按钮同时删除所有按钮?是否有类似于“如果包含btn1、btn2等…移除子对象”之类的事情 stop(); //campaign campaign_btn.addEventListener(Mous

我使用setChildIndex将按钮悬停在屏幕上时移动到屏幕的前面,但我创建了一个“后退”按钮,以便在时间轴中将电影后退几帧以查看上一个屏幕。我的问题是,当我使用“后退”按钮返回到时间线中的该点时,setChildIndex按钮仍保留在屏幕上。下面的脚本显示了我的按钮,然后是后退按钮。如何使“后退”按钮同时删除所有按钮?是否有类似于“如果包含btn1、btn2等…移除子对象”之类的事情

stop();

//campaign
campaign_btn.addEventListener(MouseEvent.ROLL_OVER, roll1);
function roll1(event:MouseEvent):void {
    setChildIndex(campaign_btn, numChildren-1);
};

//survey
survey_btn.addEventListener(MouseEvent.ROLL_OVER, roll2);
function roll2(event:MouseEvent):void {
    setChildIndex(survey_btn, numChildren-1);
};

//project
project_btn.addEventListener(MouseEvent.ROLL_OVER, roll3);
function roll3(event:MouseEvent):void {
    setChildIndex(project_btn, numChildren-1);
};

//filestore
filestore_btn.addEventListener(MouseEvent.ROLL_OVER, roll4);
function roll4(event:MouseEvent):void {
    setChildIndex(filestore_btn, numChildren-1);
};

//website
website_btn.addEventListener(MouseEvent.ROLL_OVER, roll5);
function roll5(event:MouseEvent):void {
    setChildIndex(website_btn, numChildren-1);
};

//forms
forms_btn.addEventListener(MouseEvent.ROLL_OVER, roll6);
function roll6(event:MouseEvent):void {
    setChildIndex(forms_btn, numChildren-1);
};

//invoice
invoice_btn.addEventListener(MouseEvent.ROLL_OVER, roll7);
function roll7(event:MouseEvent):void {
    setChildIndex(invoice_btn, numChildren-1);
};

//CRM
CRM_btn.addEventListener(MouseEvent.ROLL_OVER, roll8);
function roll8(event:MouseEvent):void {
    setChildIndex(CRM_btn, numChildren-1);
};

//--------------------------back button------------------------------
back_btn.addEventListener(MouseEvent.CLICK, buttonClick1);
function buttonClick1(event:MouseEvent):void
{
    if(contains(campaign_btn))
    {
        removeChild(campaign_btn);
    }
        gotoAndPlay(1124);
}

如果我回忆正确,我可能是错的,因为我已经有一段时间没有使用可怕的时间线了,使用任何子函数修改的时间线对象不再是正常时间线流的一部分。因此,当离开一个框架,他们不会消失,你必须手动处理

添加“后退”按钮的onClick事件处理程序以删除对象,或添加到每个对象:

objectToBeRemoved.addEventListener(Event.ENTER_FRAME, killer);

function killer(e:Event):void{
    if (currentFrame != 11)
        removeChild(objectToBeRemoved)
}

但这并不是真正的优化解决方案。可能无法正常工作,我太困了,无法更好地集中注意力。

这确实有帮助!虽然它没有直接导致解决方案,但它使问题变得容易得多。这个简单的代码为我做到了:
if(contains(btn1)){removeChild(btn1);}