Как стать автором
Обновить

Комментарии 5

Мы с приятелем хотели принять участие в конкурсе, но нас постигло жестокое разочарование — JavaFX крива до безобразия.
Наглядные примеры:
Нельзя начать проигрывание таймлайна с произвольной точки.
Нельзя запаузить таймлайн в произвольной точке.
Чтобы и то и другое сделать, нужно внедрять костыль (шаблон проектирования такой модный).

Но это пол беды — нельзя получить интеполируемые значения в произвольной точке. Для анимации — это смерти подобно.

Для того, чтобы узнать, как JavaFX интерполирует ваши значения (например, изменение координат прямоугольника при его перемещении, описанном на таймлайне),
нужно сделать следующее —

1. динамически впендюрить ключевой кадр с указанием на нужное время, и на нужное время +1 кадр.
2. добавить описание экшена кейфреймов — timeline.pause(), чтоб кадр запаузил проигрывание на нужном времени для каждого из кадров. При этом, у первого кадра нужно сделать timeline.pause(); timeline.play(); Первый кадр ставит паузу и моментально продолжает воспроизведение, второй кадр — просто ставит паузу.

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

Зачем такой геморой? А вот зачем:
1. timeline.pause() и play() с произвольного места в принципе не работает.
2. интерполируемые значения возвращаются с «отставанием»:
Делаете паузу на 2000ms — все интерполируемые значения будут равны 0. Делаете паузу на 3000ms — получаете значения от 2000ms, делаете паузу на 4000ms, получаете значение от 3000ms.
Черт, отправился коммент.
Так вот, несмотря на убойный инструментарий для содания анимации, JavaFX крива и коса, как Баба-яга.
Сделать попсовые приложения на ней — можно (фотогалереи, движущиеся человечки, квакающие уточки), при решении серьезных задач моментально вылезают непреодолимые препятствия на базовом функционале.
ИМХО, через годик JavaFX будет приведена в норму. Посмотрите в Джиру JavaFX'ы, там багов немерено.

Баги, которые мы нашли, были повешены на чела, у которого уже было ПОЛТОРЫ сотни багов.
О каком конкурсе может идти речь?
НЛО прилетело и опубликовало эту надпись здесь
В данном случае, скорее всего дело именно так и обстоит.
Думаю, можно сделать языку скидку на то, что это версия 1.0. Java наверняка в первой версии тоже была чем-то таким-же бажным и неудобным. Зато текущая версия позволяет эффективно решать многие практические задачи. Будем надеяться, что JavaFX со временем дорастет до своего «старшего собрата» по удобству использования и приспособленности для решения практических задач.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Публикации

Истории