actionscript 3 — простота движения, программирование анимации, переполнение стека

Tweening — это термин для редактирования видео, используемый для описания легкости движения. Например, с лифтом лифт не работает на полной скорости и не останавливается, когда достигает желаемого этажа. Он знает, на каком этаже он находится, на каком этаже он собирается и сколько времени потребуется, чтобы туда добраться. Затем он использует эти данные для сглаживания своего движения.

Я хотел бы иметь возможность программировать это плавное движение для моих проектов с помощью твининга.

Как это сделать, изложено в http://robertpenner.com/easing/penner_chapter7_tweening.pdf

В частности, глядя на pg207-211

Это руководство объясняет, что такое анимация движения, а затем показывает код в Action Script. Честно говоря, я чувствую себя немного глупо, потому что я пытался использовать предоставленные примеры, но я не могу воспроизвести его на другом языке, таком как c ++, java, javascript или lua.

Я не хочу использовать пакет или плагин для анимации кода, я хочу узнать, как на самом деле кодировать функцию анимации. Так что, если кто-то с лучшими навыками понимания или программирования, думает, что понимает, я был бы очень благодарен за объяснение.

Примеры функций скрипта Action …

Math.easeInQuad = function (t, b, c, d) {
return c*(t/=d)*t + b;
};

Math.easeOutQuad = function (t, b, c, d) {
return -c * (t/=d)*(t-2) + b;
};

Math.easeInOutQuad = function (t, b, c, d) {
if ((t/=d/2) < 1)
return c/2*t*t + b;
return -c/2 * ((--t)*(t-2) - 1) + b;
};

1

Решение

Надлежащая функция анимации в AS3 принимает 6 параметров Number последние два параметра по умолчанию равны 0. Он должен интерпретировать параметры следующим образом:

  • Первый параметр является основным, он заполняется значением от 0 до продолжительности анимации;
  • Второй параметр — это значение параметра, который вы пытаетесь анимировать, когда первый параметр равен нулю;
  • Третий параметр — это размер интервала значений, который ожидается присвоить параметру анимации;
  • Четвертый параметр — это длительность в любых единицах измерения, которые должен предоставить пользователь, следовательно, Number, а не int;
  • Пятый и шестой параметры являются необязательными и не используются во встроенной библиотеке анимации AS3, но их можно использовать для изменения интерполяции, выполняемой внутри функции, если она используется в другом месте.

Ожидаемый результат представляет собой значение между second а также (second+third) параметры, или с их каноническими именами t, b, c, d, a, p между b а также b+c,

Вы можете построить график функции, используя простой алгоритм, подобный этому:

function graph(f:Function,w:Number,h:Number):Shape {
// returns a shape with black on white graph drawn within a rectangle of given dimensions
var s:Shape=new Shape();
s.graphics.lineStyle(0); // black
s.graphics.moveTo(0,h); // lower left corner
for (var i:int=0;i<w;i++) {
s.graphics.lineTo(i,f(i,h,-1*h,w));
}
return s;
}

Говоря о C ++, например, easeInQuad должен быть запрограммирован так (если я не испортил синтаксис C ++):

double easeInQuad(double t, double b, double c, double d) {
double td=t/d;
return b+c*td*td;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]