Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

51 rinda
1.8KB

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