В Adobe XD у меня есть пунктирный путь (или линия), который мне нужен для анимации. В другом программном обеспечении я всегда делал это, анимируя смещение da sh пути (его "фаза"). В Adobe XD это свойство существует, но не доступно через пользовательский интерфейс.
Я провел некоторое копание и обнаружил в API плагина, что Line и Path происходит от GraphicNode , и что они оба имеют свойство strokeDashOffset .
Я сделал быстрый плагин, который печатает и устанавливает эти значения, используя что-то по строкам из:
function animateLineDashCommand(selection) {
let linesAndPaths = selection.items.filter(el => el instanceof Path || el instanceof Line);
linesAndPaths.forEach(el => {
el.strokeDashOffset = 10; // Or whatever test value I'm using.
});
}
Это прекрасно работает, и путь определенно меняет свою фазу. Однако, если я размещаю одну и ту же линию на двух разных артбордах с разными фазами, а затем соединяю их вместе с помощью Auto Animate, свойство игнорируется. Я предполагаю, что за кадром это свойство не интерполируется.
Кто-нибудь знает способ анимирования этого свойства и / или альтернативное решение для анимации смещения пути в Adobe XD? Насколько мне известно, анимированные SVG или GIF в настоящее время невозможны.
Спасибо.
Обновление 1: Я попробовал ручное покадровое -фразовый подход внутри компонента, где каждое состояние по существу является кадром с разной фазой da sh. Идея состояла в том, чтобы сделать Компонент временной шкалой, чтобы анимация могла быть повторно использована в различных артбордах. Однако Компоненты не поддерживают триггер Time
, что означает, что он может быть перенаправлен только при взаимодействии (щелчок, перетаскивание и т. Д. c). Этот подход не будет работать.
Обновление 2: Поскольку артборды имеют доступ к триггеру Time
, я могу дублировать артборды столько раз, сколько мне нужно, и каждый из них содержит путь имеет свою фазу da sh, установленную соответственно. Это работает , но довольно болезненно, так как может потребовать большого количества дублированных артбордов, которых я хочу избежать. Существует также снижение производительности для быстрой анимации между плотными артбордами.
Я сделал быстрый плагин GUI, чтобы упростить это, и загрузил его в GitHub . Я оставлю этот вопрос открытым, если будет найдено лучшее решение.