Я хотел бы анимировать элемент SVG с помощью Dart. Это медленно перемещает RectElement пакета «dart: svg» из одной координаты y в другую. К сожалению, я не смог найти пример. Я также попытался использовать пакет анимации, найденный здесь here, но, похоже, он не работает с элементами SVG.Анимировать элемент SVG с помощью дротика
3
A
ответ
3
Вы можете добиться этого с помощью кадров анимации и обновления атрибутов у (имея в виду, что это строка):
import 'dart:html';
import 'dart:svg';
import 'dart:async';
RectElement rect;
int pos = 0;
int dest = 300;
void main() {
// Get a reference to the element
rect = query("#rect");
// Start the animation
window.animationFrame.then(animate);
}
void animate(num delta) {
// Keep moving the element down until we reach the destination
if(pos < dest) {
pos += 2;
rect.attributes['y'] = pos.toString();
// Continue the animation
window.animationFrame.then(animate);
}
}
Edit: Switched из таймеров кадров анимации согласно предложению Грега Лоу
1
Я понимаю, что этот вопрос старый, однако, несколько дней назад я wrote an example об этом в своем блоге.
Это использует пакет паб tweenengine шаги в основном:
- Создание аксессора для любого элемента SVG вы пытаетесь оживить
- создать
TweenManager
- на вашем window.animation. затем() вызовите обновление tweenmanager.
Я также создал для него gist.
Смежные вопросы
- 1. Как анимировать существующий элемент SVG с помощью jQuery svg?
- 2. Анимировать элемент SVG со скоростью.js
- 3. Анимировать SVG с Javascript
- 4. Анимировать данные пути SVG
- 5. Анимировать сгруппированный/многослойный SVG с помощью Snap
- 6. SVG анимировать с помощью кнопок HTML
- 7. Как анимировать весь элемент «пути» svg?
- 8. Анимировать SVG-путь с d3js
- 9. Добавить SVG-элемент в существующий элемент SVG с помощью JS
- 10. Анимировать элемент «Печать» с помощью raphael js
- 11. Анимировать изображения SVG
- 12. анимировать высоту SVG графика баров
- 13. Попытка анимировать этот конкретный svg
- 14. Как я могу анимировать чертеж линии с помощью SVG?
- 15. Возможно ли анимировать непрозрачность фильтра SVG с помощью CSS-кода?
- 16. анимировать элемент DIV вдоль пути SVG, нажав кнопку
- 17. Анимировать части SVG с CSS на hover
- 18. SMIL Анимировать SVG «to» value
- 19. Анимировать SVG-путь через javascript
- 20. Постепенно замените элемент SVG с помощью преобразования в Snap SVG
- 21. Извлечь элемент SVG-файла с помощью PHP
- 22. Есть элемент SVG с помощью 2 фильтра
- 23. Переход SVG элемент с помощью CSS
- 24. Создать SVG элемент с помощью Javascript
- 25. SVG анимировать от круга к строке
- 26. Пытается анимировать элемент с помощью onClick с использованием JavaScript
- 27. iOS: анимировать элемент дважды
- 28. Как я могу анимировать несколько путей SVG?
- 29. Как сгенерировать изображение с помощью дротика
- 30. Анимировать объект SVG, который использует значок спрайта SVG
Я рекомендую изменить это, чтобы использовать document.animationFrame http://api.dartlang.org/docs/releases/latest/dart_html/Window.html#animationFrame. Это обеспечивает плавную анимацию. В зависимости от эффекта, который вы хотите достичь, вы, вероятно, можете использовать анимацию css. В chrome это позволяет анимации выводиться из основного потока. –
@GregLowe Спасибо за предложение. Есть ли причина, по которой обратный вызов требует num при отмене требует int? –
Попробуйте вместо этого использовать window.animationFrame. Вам нужно явно перерегистрировать его в каждом цикле, поэтому не нужно отменять, просто не перерегистрируйте, когда вы закончите. У Сета есть пример здесь http://stackoverflow.com/questions/15753170/how-do-drive-an-animation-loop-at-60fps-with-dart –