javascript Переключение между сценами для разных разрешений экрана Adobe Animate HTML5
Primary tabs
Далее речь идет о javascript сценарии, который мы пишем для слоя на временнОй линии (если у вас есть примеры кода, то поищите по проекту "timeline functions" в выгруженном JS)
Пример №1 -- Переключение между двумя сценами для разных разрешений экрана
Далее мы управляем слоем, который имеет название layer1_mc (его надо прописать в интерфейсе анимайта):
this.stop();
var defaultWidth = lib.properties.width;
var parent = canvas.parentElement;
while(parent.parentElement) {
parent = parent.parentElement;
}
var main = this.layer1_mc;
window.addEventListener("resize", onWindowResize);
function onWindowResize()
{
var currWidth = parent.clientWidth;
if (currWidth < 500) { // если разрешение меньше 500 пискселей
main.gotoAndStop(1); // то сцена 1
} else { // иначе
main.gotoAndStop(0); // сцена 2
}
}
onWindowResize();-- подход работает, если у нас есть один слой с именем layer1_mc с одним ключевым кадром и вся анимация лежит уже внутри этого кадра в одну линию - именно на этой линии мы переключаемся между кадрами в зависимости от расширения.
Пример №2 -- Меняем ширину канваса (canvas) вслед за родителем
Тоже переключаемся между двумя сценами, но если ширина окна стала меньше 970 пикселей, то начинаем подгонять под нее и ширину канваса:
this.stop();
var defaultWidth = lib.properties.width;
var parent = canvas.parentElement;
while(parent.parentElement) {
parent = parent.parentElement;
}
var main = this.layer1_mc;
window.addEventListener("resize", onWindowResize);
function onWindowResize()
{
var currWidth = parent.clientWidth;
if (currWidth < 970) {
// переключаем на текущий размер
canvas.style.width = currWidth + 'px';
console.log('-----< 970', currWidth + 'px');
} else {
// переключаем на 970, если экран еще шире
canvas.style.width = '970px';
}
if (currWidth < 500) {
main.gotoAndStop(1);
} else {
main.gotoAndStop(0);
}
}
onWindowResize();
- Log in to post comments
- 2617 reads
vedro-compota
Thu, 11/04/2021 - 19:00
Permalink
Пример переключения между тремя сценами
Например, переключение между тремя сценами:
this.stop(); var defaultWidth = lib.properties.width; var parent = canvas.parentElement; while(parent.parentElement) { parent = parent.parentElement; } var main = this.main_mc; //имя window.addEventListener("resize", onWindowResize); function onWindowResize() { //console.log('resize', parent.clientWidth); // отладка текущей ширины var currWidth = parent.clientWidth; if (currWidth < 750) { main.gotoAndStop(539); } else if (currWidth < 850) { main.gotoAndStop(270); // кадр: вариант ширины } else { // иначе main.gotoAndStop(0); // кадр: максимальная ширина } } onWindowResize(); // инициаллизация - подбор сцены при открытии страницы_____________
матфак вгу и остальная классика =)
vedro-compota
Mon, 01/24/2022 - 12:34
Permalink
Этот же вариант можно
Этот же вариант можно переписать для 5 сцен:
this.stop(); var defaultWidth = lib.properties.width; var parent = canvas.parentElement; while(parent.parentElement) { parent = parent.parentElement; } var main = this.main_mc; //имя window.addEventListener("resize", onWindowResize); function onWindowResize() { //console.log('resize', parent.clientWidth); // отладка текущей ширины var currWidth = parent.clientWidth; if (currWidth < 750) { main.gotoAndStop(539); } else if (currWidth < 850) { main.gotoAndStop(номерКадра); // кадр: вариант ширины } else { // иначе main.gotoAndStop(0); // кадр: максимальная ширина } } onWindowResize(); // инициаллизация - подбор сцены при открытии страницы_____________
матфак вгу и остальная классика =)