Могу ли я установить количество кадров в image .gif в Livecode?

#animated-gif #livecode

#анимированный-gif #livecode

Вопрос:

У меня есть файл изображения .gif. У моего изображения 5 кадров, и я хочу выполнить цикл от 1 до 3. Кадры 4 и 5 будут воспроизводиться при нажатии. Могу ли я это сделать?

Комментарии:

1. Я почти уверен, что единственный способ сделать это в LiveCode с анимированным gif — это установить рамку вручную — см. Ответ ниже 🙂

Ответ №1:

Вот короткий пример, который имеет 2 режима;

  • режим 1 воспроизводит кадры 1-3
  • режим 2 воспроизводит кадры 4-5
  • когда карта открывается, она начинается с режима 1
  • щелчок по изображению переключает в режим 2

Весь код взят из скрипта card..

 local sFrameStartA, sFrameEndA, sMode, sFrame


on openCard
   -- tuen off automatic animation - we will set the frames manually
   set the repeatCount of image "MyImage" to 0

   -- mode 1 (normal) frames 1 - 3
   put 1 into sFrameStartA[1]
   put 3 into sFrameEndA[1]

   -- mode 2 (frame 4 - 5) after click
   put 4 into sFrameStartA[2]
   put 5 into sFrameEndA[2]

   put 0 into sFrame
   put 1 into sMode

   -- start animation
   send "animate" to me in 0 millisecs
end openCard


on animate
   -- animate : next frame
   add 1 to sFrame

   -- check the frame number is valid - if not, reset to the start frame
   if sFrame < sFrameStartA[sMode] or sFrame > sFrameEndA[sMode] then
      put sFrameStartA[sMode] into sFrame
   end if

   -- update the image's frame
   set the currentFrame of image "MyImage" to sFrame

   send "animate" to me in 500 millisecs
end animate


on mouseUp
   -- clicking the image will switch to mode 2 - frames 4-5
   if the short name of the target = "MyImage" then
      put 2 into sMode
   end if
end mouseUp