#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