Тема: про изинг
Показать сообщение отдельно
Старый 12.01.2015, 17:58
greep вне форума Посмотреть профиль Отправить личное сообщение для greep Найти все сообщения от greep
  № 1  
Ответить с цитированием
greep
 
Аватар для greep

Регистрация: Jun 2002
Адрес: on the backyard
Сообщений: 285
Отправить сообщение для greep с помощью ICQ
По умолчанию про изинг

Всем привет. Решил прицепить вместо большой либы, себе в проект, маленькую изинговую функцию. Например такую

Код AS1/AS2:
	easeOutQuad = function(t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	}
Где:

t - первая итерация
d - конечная
b - начальная точка
с - конечная точка

Например я хочу программно двигать мувиклип из точки х = 50 в точку х= 310. В течении 50 кадров. Получается у меня такой вот код:

Код AS1/AS2:
if (t<=d) {
			mc._x = easeOutQuart(t, 50, 310, d);
 
			}else{
			d=0;
			}
		t++;
 
		}else{
			mc._x = easeOutQuart(t, 50, 310, d);
			myEasingStatus = false;
		}
Все прекрасно работает пока начальная точка больше нуля, а конечная точка больше начальной. Но если мне нужно двигать мувиклип из точки х=200 в точку х=-200 тут почему-то казалось бы стандартная изинговая формула не арбайтен.

Но если не много ее доработать...

Код AS1/AS2:
	easeOutQuad = function(t, b, c, d) {
		var b2 = b;
		var c2 = c;
		if(b > c){
			b = c2;
			c = c2-b2;
		}
		return -c *(t/=d)*(t-2) + b;
	}
то по крайней мере из точки 400 можно анимировать в точку 100...

Задачка собственно состоит в том, чтобы можно было бы использовать все эти многочисленные изинговые функции и многочисленных фреймворков типа jqwery и прочих библиотек универсально. Просто добавляешь функцию к себе и вставляешь любые значения, типа из х=0 в х=500 или из х=100 в х=-200 или х=1 в х=0 и т.д.

помогите пожалуйста разобраться как этого можно достичь. большое спасибо заранее, бьюсь второй день...


Последний раз редактировалось greep; 13.01.2015 в 13:48.