Передача функций и параметров в качестве значений параметров в функцию GTweener.to

Я пытаюсь плавно изменить масштабирование в моей игре stage3d (с использованием движка flare3d 2.0).

Я использую GTweener для анимации камеры, как показано ниже

GTweener.to(_camera,0.5,{x:pos.x,y:pos.y,z:pos.z});

Это работает нормально, как бы я ни захотел изменить другие свойства, которые можно установить только с помощью функций, например

setRotation(x,y,z);

или же

rotateX(value);

Я не уверен, как вызвать функцию и передать параметры функции в качестве параметров в функцию GTweerner.to

Другая известная мне работа заключается в передаче функции обратного вызова как свойства onUpdate, но я предпочитаю избегать его, чтобы все было просто.

Или же

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

2 ответа

Я знаю, что вы используете GTWeener, но вы можете перейти на один уровень вниз и использовать класс GTWeen (который GWTeener использует для упрощения процесса создания анимации).

У него есть свойство onChange, которое является функцией обратного вызова, которая вызывается во время выполнения анимации. Теоретически, вы могли бы назвать это setPosition() метод из функции обратного вызова, чтобы сделать ваши операции масштабирования более плавными.

Однако, чтобы сделать это, я предполагаю, что вам действительно нужно изменить некоторые другие свойства, так что это может не сработать или быть отличной идеей. Чистая спекуляция с моей стороны, так как я никогда не использовал GTween или GTweener ... Я только посмотрел документацию.

ПРИМЕЧАНИЕ: вам также может потребоваться установить для свойства dispatchEvents значение true, чтобы получить значение true, чтобы получить возможность выполнения обратного вызова.

Иногда движущиеся объекты кажутся "мерцающими" при анимации с использованием линейной скорости. Применяя другой тип смягчения, вы можете найти его более гладким.

Например, используя com.gskinner.motion.easing.Cubic.easeInOut:

GTweener.to(_camera,0.5,{x:pos.x,y:pos.y,z:pos.z}, {ease: Cubic.easeInOut});

Я не верю, что мерцание связано с тем, что x, y, а также z свойства устанавливаются последовательно, так как все это произойдет до того, как будет отображен новый кадр.

Другие вопросы по тегам