Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.11.2011, 10:54
Napalmnsk вне форума Посмотреть профиль Отправить личное сообщение для Napalmnsk Найти все сообщения от Napalmnsk
  № 1  
Ответить с цитированием
Napalmnsk

Регистрация: Jun 2010
Сообщений: 6
По умолчанию дальнейшее проигрывание символа после нескольких повторов

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

Старый 22.11.2011, 11:20
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
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();
	}	
 
};
__________________
Идите первым!


Последний раз редактировалось mooncar; 22.11.2011 в 11:49.
Старый 22.11.2011, 12:30
Napalmnsk вне форума Посмотреть профиль Отправить личное сообщение для Napalmnsk Найти все сообщения от Napalmnsk
  № 3  
Ответить с цитированием
Napalmnsk

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

Старый 22.11.2011, 12:48
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Пожалуйста! Я толком не отлаживал
__________________
Идите первым!

Старый 22.11.2011, 13:10
Napalmnsk вне форума Посмотреть профиль Отправить личное сообщение для Napalmnsk Найти все сообщения от Napalmnsk
  № 5  
Ответить с цитированием
Napalmnsk

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

Старый 22.11.2011, 13:27
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Первый - это который с кодом в самом мувике?
stop() в конце поставьте, и после одного прохода 16-30 мувик остановится.

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

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


Последний раз редактировалось mooncar; 22.11.2011 в 13:34.
Старый 22.11.2011, 13:31
Napalmnsk вне форума Посмотреть профиль Отправить личное сообщение для Napalmnsk Найти все сообщения от Napalmnsk
  № 7  
Ответить с цитированием
Napalmnsk

Регистрация: Jun 2010
Сообщений: 6
да первый который в самом клипе, но мне нужно чтоб он постоянно повторялся, я стоп поэтому и не ставил.
Просто при повторном прохождении не включается 10 повторений.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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