Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   дальнейшее проигрывание символа после нескольких повторов (http://www.flasher.ru/forum/showthread.php?t=171700)

Napalmnsk 22.11.2011 10:54

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

mooncar 22.11.2011 11:20

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

Кадр 15:
Код AS1/AS2:

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

Кадр 30:
Код AS1/AS2:

stop();

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

Код в кадре основного таймлайна, mc - инстанс-нейм мувика на сцене, в его первом кадре стоит stop(), поскольку движение по кадрам полностью программное.
Код AS1/AS2:

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 мувик остановится.

Или вы хотите чтобы вся эта анимация со всеми повторами повторялось?
В последнем кадре запишите
Код AS1/AS2:

delete count;

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

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

Napalmnsk 22.11.2011 13:31

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

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


Часовой пояс GMT +4, время: 19:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.