You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.2KB

  1. function Анимации(события)
  2. {
  3. this.создать = function()
  4. {
  5. this.задано = {};
  6. this.анимации = {};
  7. };
  8. this.запустить = function(имя, элемент)
  9. {
  10. // Останавливаем прошлый экземпляр этой анимации.
  11. if (имя in this.анимации)
  12. {
  13. this.анимации[имя].остановить();
  14. delete this.анимации[имя];
  15. }
  16. this.анимации[имя] = new Анимация(элемент, this.задано[имя]);
  17. }
  18. this.обработатьКлюч = function(ключ, путь, значение)
  19. {
  20. if (путь[0] != "анимации")
  21. {
  22. return;
  23. }
  24. let имя = путь[1];
  25. let свойство = путь.slice(2).join(".");
  26. if (!this.задано[имя])
  27. {
  28. this.задано[имя] = {};
  29. }
  30. this.задано[имя][свойство] = значение;
  31. события.уведомить(`анимации/${имя}`);
  32. };
  33. // Конструктор.
  34. this.создать();
  35. };