Haxe: анимация по ключевым кадрам без кадров

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

Так как я новичок. Мне не обязательно нужна сложная структура. Я был бы доволен чем-нибудь быстрым и грязным. Возможно, ifs проверяют 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
    }

}

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

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

[UX] Категории и настройки внешнего вида Flash-сообщений
[UX] Категории и настройки внешнего вида Flash-сообщений
Flash-сообщение - это обычный веб-элемент, используемый для отправки короткого сообщения пользователю. Например, на странице входа в систему может...
4
0
1 172
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

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

Спасибо. Я не понял, что такое ENTER_FRAME, так как у меня всегда будет один кадр (мне все еще трудно понять структуру объекта flash). Хотелось бы, чтобы был практичный способ создавать кадры на лету. Я проверяю твиннинг ...

muhuk 18.01.2009 12:16

ENTER_FRAME запускается каждый раз при рендеринге кадра, «современная» разработка flash очень мало заботится о ключевых кадрах, в отличие от oldschool ActionScript 1.

grapefrukt 18.01.2009 13:04

Да, ENTER_FRAME запускается на вашей скорости fps, даже если у вас нет кадров.

mk12 23.11.2009 06:09

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

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

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

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