AS3: Округление значений в классе Tweener (Tweenlite)

У меня небольшая проблема, я вращаю объект. Мне нужны округленные значения для вращения объекта для повышения эффективности.

TweenLite.to(this, 1, { rotation:rotation+100 });
//Output rotation values
//83.02559999999998, 85.55999999999999, 88.02839999999999, 90.1404, 92.16, 93.8496

поэтому я попробовал это

TweenLite.to(this, 1, { rotation:rotation+100, onUpdate:function()
{
    rotation = Math.round(rotation);
}
});

Но безрезультатно. Любые идеи ?


person Muhammad    schedule 20.11.2012    source источник
comment
Действительно ли округленные значения вращения более эффективны?   -  person Mark Knol    schedule 20.11.2012
comment
@MarkKnol В общем программировании с плавающей запятой требуется больше обработки, чем с целыми числами. Особенно неуместные числа с плавающей запятой заставляют процессор выполнять дополнительную работу, чем обычно. Конечно, ограниченное использование незаметно. Крайний пример плавающей запятой, которая сводит ЦП с ума, - это вычисление PI.   -  person Muhammad    schedule 20.11.2012
comment
Я думаю, что это только дает дополнительные накладные расходы вместо оптимизации, поскольку ваши расчеты не изменились, вы только изменили вывод. Поскольку отсутствует информация, почему вы хотите использовать это, я думаю, вам не следует оптимизировать таким образом. Кстати, в TweenMax есть встроенная функция для более быстрого рендеринга вращения с помощью плагина TranformMatrix, см. greensock .com/tweening-tips   -  person Mark Knol    schedule 22.11.2012


Ответы (3)


Вы можете попробовать использовать прокси-объект, например

var obj:Object = {};
obj.rotation = this.rotation;
TweenLite.to(obj, 1, { rotation:rotation+100, onUpdate:function()
{
    if (this.rotation != Math.round(obj.rotation))
        this.rotation = Math.round(obj.rotation);
}
});
person lexus.pp    schedule 20.11.2012

Как насчет

TweenLite.to(this, 1, { rotation:Math.round(rotation+100) });
person Adrian Pirvulescu    schedule 20.11.2012

Если рендеринг является проблемой; TweenMax имеет встроенную функцию для более быстрого рендеринга вращения с помощью TransformMatrixPlugin, см. http://greensock.com/tweening-tips

person Mark Knol    schedule 22.11.2012