ActionScript 2 - получить исходную позицию MovieClips и сохранить ее для каждого mc для последующей целевой позиции

Я работаю над анимацией в AS2, которая требует, чтобы весь текст MovieClips (имена экземпляров, начинающиеся с "txt_") был изначально помещен на сцену вручную, и мне нужно сохранить их собственные начальные позиции (x,y), чтобы их можно было извлечь позже, когда я захочу оживить их до тех же самых окончательных координат, независимо от того, где они перемещаются в это время.

Итак, необходимы следующие шаги:

  1. Все эти текстовые мувиклипы помещаются на сцену вручную из библиотеки (не динамически), совпадая с ожидаемой конечной позицией ключевого кадра (x,y), чтобы получить желаемую окончательную компоновку экрана.
  2. Затем рамочный скрипт проходит через все эти экземпляры MovieClip на сцене перед их рендерингом на сцене и сохраняет их начальные (также будущие целевые) (mc.targetPosX или mc.targetPosY) позиции.
  3. Затем рамочный скрипт также перемещает все эти экземпляры MovieClip перед их рендерингом на сцене и перемещает / смещает их в других местах на сцене (например, mc._x +=25px;) и скрывает их (например, mc._alpha =0;)
  4. Наконец, используя анимацию типа Greensock, я хочу использовать сохраненную конечную позицию, чтобы анимировать каждую из них в сохраненную конечную позицию. (например, TweenLite.to(mc, 1,{_alpha:100, _x:mc.targetPosX, ease:Quad.easeOut});)

Мне удалось создать цикл для получения мувиклипов "txt_", но потом я не знаю, как сохранить их целевые позиции с их экземпляром и впоследствии использовать их вне цикла. Заранее спасибо, Аттила

1 ответ

Решение

Я не знаю, с какими проблемами вы пытаетесь сохранить некоторые переменные внутри экземпляров, но вот мои предложения о процессе, которые вы описали.

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

for(var i=0, txtCount=10; i<txtCount; i++){
    textMc = this['txt_'+i];
    //do stuff
    ...
}

Отсюда ваши очки.

  1. Вы уже сделали это.

  2. Используйте цикл, описанный выше, чтобы сохранить текущие свойства объекта внутри его экземпляра.

    textMc.storedX=textMc._x;
    textMc.storedY=textMc._y;
    
  3. Вот тот же объект, где вы можете расположить петли

    textMc._x+=25;
    textMc._alpha=0;
    
  4. Наконец, сразу после этого в том же цикле используйте greensock.

    TweenLite.to(textMc, 1,{_alpha:100, _x:mc.storedX, ease:Quad.easeOut});
    

Вот и все.

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