Flash: AS3 - проблемы setChildIndex - PullRequest
0 голосов
/ 01 марта 2011

Я использовал setChildIndex, чтобы переместить кнопки в переднюю часть экрана, когда они наведены, но у меня есть кнопка «Назад», созданная для того, чтобы фильм переместился на несколько кадров назад на временной шкале для просмотра предыдущего экрана. Моя проблема в том, что когда я использую кнопку «Назад», чтобы вернуться к этой точке на временной шкале, кнопки setChildIndex по-прежнему остаются на экране. Скрипт, который я имею ниже, показывает те кнопки, которые у меня есть, а затем кнопку возврата. Как сделать так, чтобы кнопка «Назад» удаляла все кнопки одновременно? Есть ли что-то вроде «если содержит btn1, btn2, ect .. remove child»?

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);
}

1 Ответ

1 голос
/ 01 марта 2011

Если я правильно помню, и я могу ошибаться, поскольку я не использовал страшную временную шкалу в течение некоторого времени, объекты временной шкалы, модифицированные с помощью любой из дочерних функций, больше не являются частью обычного потока временной шкалы.Поэтому, когда вы покидаете рамку, они не исчезают, вы должны позаботиться об этом вручную.

Либо добавьте в обработчик событий onClick кнопки «Назад» удаление объектов, либо добавьте к каждому из объектов:

objectToBeRemoved.addEventListener(Event.ENTER_FRAME, killer);

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

Но это не совсем оптимизированное решение.Может не сработать из коробки, я слишком сонный, чтобы лучше сосредоточиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...