подробнее.
Как я говорил еще в самом начале, анимированный-GIF представляет собой по сути дела малюсенький фильм «свернутый» в один GIF-файл и, следовательно, также как и его «старший брат» состоит из отдельных кадров называемых в данном случае фреймами. Готовность одного из таких кадров-фреймов к прорисовке и является той причиной вызова функции imageUpdate, которая нас интересует в данном случае, а поскольку info является битовой шкалой т.е. каждый ее разряд обозначает одну причину вызова этой функции, и по времени могут совпасть несколько из них, то для того чтобы удостоверится, что причина ее вызова именно та, что нас интересует нам нужно проверить, не равен ли нулю соответствующий бит называемый в данном случае FRAMEBITS.
Проверим еще заодно, а готова ли к прорисовке (т.е. создана ли) и наша «самая большая картинка» и получим следующую конструкцию:
if((img == imgDog) && ((info & FRAMEBITS) != 0) && (imgFull != null)) {
Теперь, когда мы удостоверились,