Как сохранить цвет видеоклипа между кадрами?

Мое приложение имеет 2 кадра; в кадре 1 есть 5 MC и на DOUBLE_CLICK событие изменения цвета цели и перейти к следующему кадру 2.
В кадре 2 у меня есть кнопка для возврата к кадру 1.

Как я могу сохранить цвет MC, когда я вернусь к кадру 1?

public class test extends MovieClip
{
    public function test()
    {
        var myMCTable:Array = [myMC1, myMC2, myMC3, myMC4, myMC5];
        for (var i:uint = 0; i < myMCTable.length; i++)
        {
            myMCTable[i].doubleClickEnabled = true;
            myMCTable[i].addEventListener(MouseEvent.DOUBLE_CLICK, changeColor);
        }
    }

    private function changeColor(e:MouseEvent) : void
    {
        var newColorTransform:ColorTransform = (e.target).transform.colorTransform;
        newColorTransform.color = Math.random() * 0xFFFFFF;
        (e.target).transform.colorTransform = newColorTransform;
        nextFrame();
        goBack_btn.addEventListener(MouseEvent.CLICK, goBack);
    }

    private function goBack(e:MouseEvent) : void
    {
        prevFrame();
    }
}

2 ответа

Если вы сделаете класс для видеоклипов (у вас есть 5, я полагаю), что они все поделятся. Создайте свойство класса myColor, а затем обновляйте свойство myColor каждого отдельного объекта movieclip при каждом двойном щелчке и изменении цвета. Вы можете заставить метод goBack() повторно применять цвет каждого мувиклипа из его собственного свойства.

Имеет ли это смысл?

Простейшим способом было бы иметь три кадра, создать свои MC на кадре 1 и переключаться между кадрами 2 и 3.

Вы также можете хранить информацию о цвете в объекте.

_color[e.target.id] = newColorTransform.color;

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

Другие вопросы по тегам