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

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

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

Регистрация: Aug 2003
Сообщений: 204
По умолчанию Проскок кадров при перемещении по таймлайну скриптами

Скрипты для кнопок плавно перемещающих сцену по таймлайну в заданные координаты.
Имеется таймлайн 40 кадров и скрипт:
Код:
stop();
i = _root._currentframe; //позиция на таймлайне
pos0 = 1; //позиция кнопки сброса
pos1 = 10; //позиция для 1 кнопки
pos2 = 20; //позиция для 2 кнопки
pos3 = 30; //позиция для 3 кнопки
pos4 = 40;//позиция для 4 кнопки


// Кнопка сброса на исходную (1-й кадр)
mb.onRelease = function() {
	onEnterFrame = function () {
		if (_currentframe>pos0) {
			_root._currentframe = gotoAndStop(i--);
		} else {
			stop();
		}
	};
};

//Кнопка перехода на 10-й кадр, если уже там (else) 
//переходит на ту что была до неё, 
//в данной ситуации на 1-й кадр
z1.mb1.onRelease = function() {
	if (_root._currentframe != pos1) {
		onEnterFrame = function () {
			if (_currentframe=pos1) {
				stop();
			}
			if (_root._currentframe>pos1) {
				_root._currentframe = gotoAndStop(i--);
			}
			if (_root._currentframe<pos1) {
				gotoAndPlay(i++);
			}
		};
	} else {
		onEnterFrame = function () {
			if (_currentframe=pos0) {
				stop();
			}
			if (_root._currentframe>pos0) {
				_root._currentframe = gotoAndStop(i--);
			}
		};
	}
};

//Кнопка перехода на 20-й кадр, если уже там (else) 
//переходит на ту что была до неё, 
//в данной ситуации на 10-й кадр
z2.mb2.onRelease = function() {
	if (_root._currentframe != pos2) {
		onEnterFrame = function () {
			if (_currentframe=pos2) {
				stop();
			}
			if (_root._currentframe>pos2) {
				_root._currentframe = gotoAndStop(i--);
			}
			if (_root._currentframe<pos2) {
				gotoAndPlay(i++);
			}
		};
	} else {
		onEnterFrame = function () {
			if (_currentframe=pos1) {
				stop();
			}
			if (_root._currentframe>pos1) {
				_root._currentframe = gotoAndStop(i--);
			}
		};
	}
};

//Кнопка перехода на 30-й кадр, если уже там (else) 
//переходит на ту что была до неё, 
//в данной ситуации на 20-й кадр
z3.mb3.onRelease = function() {
	if (_root._currentframe != pos3) {
		onEnterFrame = function () {
			if (_currentframe=pos3) {
				stop();
			}
			if (_root._currentframe>pos3) {
				_root._currentframe = gotoAndStop(i--);
			}
			if (_root._currentframe<pos3) {
				gotoAndPlay(i++);
			}
		};
	} else {
		onEnterFrame = function () {
			if (_currentframe=pos2) {
				stop();
			}
			if (_root._currentframe>pos2) {
				_root._currentframe = gotoAndStop(i--);
			}
		};
	}
};

//Кнопка перехода на 40-й кадр, если уже там (else) 
//переходит на ту что была до неё, 
//в данной ситуации на 30-й кадр
z4.mb4.onRelease = function() {
	if (_root._currentframe != pos4) {
		onEnterFrame = function () {
			if (_currentframe=pos4) {
				stop();
			}
			if (_root._currentframe>pos4) {
				_root._currentframe = gotoAndStop(i--);
			}
			if (_root._currentframe<pos4) {
				gotoAndPlay(i++);
			}
		};
	} else {
		onEnterFrame = function () {
			if (_currentframe=pos3) {
				stop();
			}
			if (_root._currentframe!=pos3) {
				_root._currentframe = gotoAndStop(i--);
			}
		};
	}
};
Вроде всё работает, всё нормально, пока не столкнулся с такой проблемой - вперед мотает нормально, проверка по _currentframe показывает нужный кадр, но вот при повторном нажатии на кнопки (при повторном должно возвращать на предыдущую позицию) оно переходит, например, не с 20-го на 10-й, а с 20-го на 9-й (с 30 на 19, с 40 на 29)и т.д. т.е. проскакивает на 1 кадр назад больше чем надо, подскажите в чем моя ошибка и как это лечить ?

АПДЕЙТ: Сорри, привязал инпут текст к i чтобы снимать показатели кадров, то походу его глючит, сам скрипт бегает правильно...


Последний раз редактировалось DJ_Baton; 16.09.2008 в 00:35.
Создать новую тему   Часовой пояс GMT +4, время: 09:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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