Вопрос

Я хотел бы сделать простую (цикличную) анимацию (перемещение, изменение альфа-канала и т. д.) в Haxe (flash9). У меня нет ничего похожего на фреймы в моей библиотеке, только однокадровые ресурсы.

Так как я начинающий. Я не обязательно ищу сложные рамки. Я был бы счастлив с чем-то быстрым & грязный. Возможно, if проверяет frame (переменную класса) и линейно интерполирует значения.

class MyClass extends Sprite {
    static var frame:Int = 0;
    static inline var framerate:Int = 25;

    static function main() {
        var app:MyClass = new MyClass();
        flash.Lib.current.addChild(app);
    }

    private function new() {
        super();

        // init assets here

        var myTimer:Timer = new Timer(1000/framerate);
        myTimer.addEventListener(TimerEvent.TIMER, animate);
        myTimer.start();
    }

    function animateForeground(event:TimerEvent) {
        frame = (frame + 1) % 1000;

        // set new values depending on frame
    }

}

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

Не могли бы вы дать мне несколько советов о том, как мне поступить?

Это было полезно?

Решение

Если вы хотите создавать анимацию, я очень рекомендую использовать библиотеку анимации движения , хотя я понимаю, что вы, возможно, захотите изучить основы, прежде чем & обманывать " мимо них.

Я бы рекомендовал подключать анимацию к событию ENTER_FRAME вместо таймера, работающего с той же скоростью, что и частота кадров. На самом деле нет необходимости разъединять эти два параметра, поскольку таймер не более надежен, чем событие ENTER_FRAME, и нет необходимости перемещать объекты, если их все равно не видно.

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

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

Другие советы

Вероятно, стоит прочитать chapter7_tweening.pdf из книги Роберта Пеннера, хотя сейчас очень устаревший с точки зрения кода, он охватывает концепцию анимации.

Но, возможно, не стоит изобретать велосипед ...

Feffect - хороший механизм межплатформенной анимации, Actuate проще и быстрее в использовании. Использование макросов для анимации движения - это, пожалуй, лучший подход, но, возможно, его немного сложно начать ( tinkerbell ).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top