Показать сообщение отдельно
Старый 02.06.2014, 00:19
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Не уверен, что это лучший вариант, но попробуйте его. Предполагается, что основная анимация расположена на сцене (_root). Этот код нужно поместить в первом кадре. Вам нужно лишь записать нужные числа в массив stopFrames и повесить на кнопки авто-воспроизведения метод autoplay() и на кнопку остановки метод autoPlayStop().

Код AS1/AS2:
var stopFrames:Array = [1, 5, 10, 15]; // номера кадров на которых нужно задержаться
var currentFrameStop:Number = 0; // индекс текущего кадра (индекс массива созданного выше)
 
var timePaused:Number = 3000;// три секунды
var timeout:Number; //переменая для остановки setTimeout
 
stop(); // остановить воспроизведение
autoplay(); // запкаем автоПлей
 
//остановить автоПлей
function autoPlayStop()
{
	clearTimeout(timeout);
    delete _root.onEnterFrame;
}
 
//автоПлей
function autoplay()
{
	//Каждый кадр проверяем
	_root.onEnterFrame = function()
	{
		//если текущий кадр совпадает со значением в массиве
		if (_currentframe == stopFrames[currentFrameStop])
		{
			// прибавляем индекс
			currentFrameStop++;
			// если это было последнее значение в массиве, то переходим в начало массива
			if (currentFrameStop == stopFrames.length - 1)
			{
				currentFrameStop = 0;
			}
			//запускаем автоПлей через три секунды
			timeout=setTimeout(autoplay,timePaused);
			//удаляем ентерФрейм
			delete _root.onEnterFrame;
		}
 
		//если текущий кадре НЕ совпадает со значением из массива
		else
		{
			//если это конец временной шкалы, то переходим в начало
			if(_currentframe == _totalframes)
			{
				gotoAndStop(1);
			}
			//а если это не конец временной шкалы, то переходим на следующий кадр.
			else
			{
				nextFrame();
			}
 
		}
	}


Последний раз редактировалось samana; 02.06.2014 в 13:40.