PDA

Просмотр полной версии : дальнейшее проигрывание символа после нескольких повторов


Napalmnsk
22.11.2011, 10:54
Добрый день!
Есть символ, на котором 30 фреймов. Нужно сделать, чтоб символ проиграл сначала с 1-15 фрейм 10 раз, а затем после 10 повторов, начал проигрывать с 16 по 30 фрейм.

mooncar
22.11.2011, 11:20
1. Простой способ, код в кадрах самого мувика:

Кадр 15:
if (!count) count = 1;

if (count < 10)
{
count++;
gotoAndPlay(1);
}


Кадр 30:
stop();


2. Посложнее, полностью программно.

Код в кадре основного таймлайна, mc - инстанс-нейм мувика на сцене, в его первом кадре стоит stop(), поскольку движение по кадрам полностью программное.
var passCount:Number = 0; //для учета прохождений

mc.onEnterFrame = function ()
{
if (passCount < 10)
{
if (this._currentframe < 15)
{
this.nextFrame();
}
else
{
passCount++;
this.gotoAndStop(1);
}
}

if (passCount == 10)
{
passCount++;
this.gotoAndStop(16);
}

if (passCount > 10)
{
this.nextFrame();
}

if (this._currentframe == 30)
{
this.stop();
}

};

Napalmnsk
22.11.2011, 12:30
mooncar, большое спасибо за развернутый ответ, с двумя вариантами!
Использовал первый вариант, чтоб не мудрить :) При первом проходе все работает, но со второго прохода почему-то повторы с 15 кадра не работают - напрямую идет переход с 15 на 16 фрейм, минуя 10 повторений (т.е. экшн на 15 кадре на втором и последующих проходах не срабатывает).

mooncar
22.11.2011, 12:48
Пожалуйста! Я толком не отлаживал :)

Napalmnsk
22.11.2011, 13:10
не могли бы Вы подсказать как все-таки сделать на первом примере, чтоб этот цикл повторялся? Сейчас ролик работает так - с 1-15 фрейм, затем повтор 10 раз, следом идет 16-30, потом идет второй проход ролика с 1-15 и сразу 16 по 30 фрейм и т.д. без 10 повторений.

mooncar
22.11.2011, 13:27
Первый - это который с кодом в самом мувике?
stop() в конце поставьте, и после одного прохода 16-30 мувик остановится.

Или вы хотите чтобы вся эта анимация со всеми повторами повторялось?
В последнем кадре запишите
delete count;
Тогда по достижению последнего кадра будет удалена переменная count, в которой учитывается количество проходов, и снова выполнится условие if (!count) по достижению 15-го кадра.
Разберитесь, как все это работает.

PS. Проходами я называю повторения 1-15 и далее, а вы, по-видимому, когда повторяется вся анимация...

Napalmnsk
22.11.2011, 13:31
да первый который в самом клипе, но мне нужно чтоб он постоянно повторялся, я стоп поэтому и не ставил.
Просто при повторном прохождении не включается 10 повторений.

Добавлено через 8 минут
Спасибо!!!! Все заработало!