Шаблон: Логика блоков IF() для Переключения между сценами в Adobe Animate HTML5 баннере

Основная идея переключения между сценами изложена здесь. В этой заметке просто рассмотрим процесс подробнее.

Итак пусть у вас есть сцены для следующих ширин окна (в порядке от минимальной до максимальной), всего 4-ре варианта:

  • Ширина1 -- минимальная
  • Ширина2 -- та что чуть больше минимальной
  • Ширина3 --
  • ШиринаМаксимальная ---- максимальная

И пусть у вас есть кадры переключения между сценами, каждый из которых соответствует своей ширине:

  • НомерКадраШирина1 ---- кадр начала сцены минимальной
  • НомерКадраШирина2 -- -- кадр начала сцены с чуть большей шириной чем первая
  • НомерКадраШирина3 --
  • НомерКадраШиринаМ -- -- кадр начала сцены с максимальной шириной

тогда код переключения будет иметь следующий вид:

if (currWidth < Ширина2) {
	main.gotoAndStop(НомерКадраШирина1); 
} else if (currWidth < Ширина3) { 
	main.gotoAndStop(НомерКадраШирина2); 
}  else if (currWidth < ШиринаМаксимальная) { 
	main.gotoAndStop(НомерКадраШирина3); 
} else { 
	main.gotoAndStop(НомерКадраШиринаМаксимальная); 
}

или с комментариями:

if (currWidth < Ширина2) {
	main.gotoAndStop(НомерКадраШирина1); // cцена 1
} else if (currWidth < Ширина3) { 
	main.gotoAndStop(НомерКадраШирина2);  // cцена 2
}  else if (currWidth < ШиринаМаксимальная) { 
	main.gotoAndStop(НомерКадраШирина3);  // cцена 3
} else { 
	main.gotoAndStop(НомерКадраШиринаМаксимальная);  // cцена 4
}

-- как видим в коде здесь:

  • Используются все значения для номера кадра начала сцены (у нас их четыре)
  • Не используется минимальное значение Ширина1

-- таким образом при любом количестве сцен, мы используем в коде все номер первых кадров, но не используем значение минимальной ширины сцены + перечисляем значения строго в порядке возрастания ширины.

Key Words for FKN + antitotal forum (CS VSU):