Alexa APL: как воспроизвести зацикленную GIF-анимацию?

Я развиваю навык Alexa и использую APL для визуальных эффектов, я пытаюсь зациклить отображение / скрытие изображений в контейнере для репликации анимированного GIF.

В настоящее время у меня есть первый цикл, работающий с использованием AnimateItem для изменения видимости каждого изображения после заданной задержки, например:

{
  "type": "APL",
  "version": "1.3",
  "settings": {},
  "theme": "dark",
  "import": [],
  "resources": [],
  "styles": {},
  "onMount": [],
  "graphics": {},
  "commands": {
    "fadeIn": {
      "parameters": ["duration", "delay"],
      "commands": [
        {
          "type": "AnimateItem",
          "duration": "${duration}",
          "delay": "${delay || 0}",
          "value": [
            {
              "property": "opacity",
              "from": 0,
              "to": 1
            }
          ]
        }
      ]
    },
    "fadeOut": {
      "parameters": ["duration", "delay"],
      "commands": [
        {
          "type": "AnimateItem",
          "duration": "${duration}",
          "delay": "${delay || 0}",
          "value": [
            {
              "property": "opacity",
              "from": 1,
              "to": 0
            }
          ]
        }
      ]
    }
  },
  "layouts": {},
  "mainTemplate": {
    "parameters": ["payload"],
    "items": [
      {
        "type": "Container",
        "height": "100vh",
        "width": "100vw",
        "items": [
          {
            "type": "Image",
            "width": "100vw",
            "height": "100vh",
            "source": "https://via.placeholder.com/100",
            "position": "absolute",
            "onMount": [
              {
                "type": "Sequential",
                "commands": [
                  {
                    "type": "fadeOut",
                    "delay": 0,
                    "duration": 0
                  },
                  {
                    "type": "fadeIn",
                    "delay": 1,
                    "duration": 0
                  },
                  {
                    "type": "fadeOut",
                    "delay": 300,
                    "duration": 0
                  }
                ]
              }
            ]
          },
          {
            "type": "Image",
            "width": "100vw",
            "height": "100vh",
            "source": "https://via.placeholder.com/200",
            "position": "absolute",
            "onMount": [
              {
                "type": "Sequential",
                "commands": [
                  {
                    "type": "fadeOut",
                    "delay": 0,
                    "duration": 0
                  },
                  {
                    "type": "fadeIn",
                    "delay": 300,
                    "duration": 0
                  },
                  {
                    "type": "fadeOut",
                    "delay": 600,
                    "duration": 0
                  }
                ]
              }
            ]
          },
          {
            "type": "Image",
            "width": "100vw",
            "height": "100vh",
            "source": "https://via.placeholder.com/300",
            "position": "absolute",
            "onMount": [
              {
                "type": "Sequential",
                "commands": [
                  {
                    "type": "fadeOut",
                    "delay": 0,
                    "duration": 0
                  },
                  {
                    "type": "fadeIn",
                    "delay": 600,
                    "duration": 0
                  },
                  {
                    "type": "fadeOut",
                    "delay": 900,
                    "duration": 0
                  }
                ]
              }
            ]
          },
        ]
      }
    ]
  }
}

Как лучше всего повторить этот процесс после завершения итерации? Я пытался использовать пейджеры и RepeatCount в AnimateItem, но безуспешно

РЕДАКТИРОВАТЬ:

Обновлен приведенный выше код с примером полного документа APL (заменены источники изображений и уменьшено количество изображений до 3, а не 60+, но логика та же); файл источника данных пуст, поэтому не указан

1 ответ

Я могу помочь вам, если вы можете поделиться полным документом APL и источником данных, чтобы я понял, чего вы пытаетесь достичь.

Другие вопросы по тегам