Предзагрузка изображений
Цитата: Chris Nerson от 20.01.22, 03:58Всем "Ау"!
Есть такая проблема. Облако Аксмы не позволяет локально хранить файлы большее 80Мб, я стараюсь добавлять изображения прямыми ссылками. (Тот еще геморрой, и если кто знает решение, поделитесь, как вы обходите его) Все зависит от скорости интернета браузера, потом добросовестности облачных зеркал и размеров самой картинки.Изображения разных размеров, функция sprite() задает все спрайты одновременно, но если изображения не подгрузились, происходит боль - что-то вывелось, что-то нет. А если еще силами Аксмы прописывать анимацию и функции таким кнопкам - то там вообще ересь.
и вот как в код прописать строку предзагрузки всех изображений? Чтобы браузер получил ссылки на изображения, и начал копировать их себе в буфер, пока не появились функции sprite() для их вывода? как вариант думал создать страницу, на которой будет что-то крутиться, пока проходит загрузка.
Пробовал нативными инструментами Аксмы по типу выполнения функции после загрузки спрайта такое провернуть, не вышло. аргумент спрайт.visible становится true не после загрузки изображения, а практически сразу по завершению функции, и для динамичного отслеживания не подходит.
Всем "Ау"!
Есть такая проблема. Облако Аксмы не позволяет локально хранить файлы большее 80Мб, я стараюсь добавлять изображения прямыми ссылками. (Тот еще геморрой, и если кто знает решение, поделитесь, как вы обходите его) Все зависит от скорости интернета браузера, потом добросовестности облачных зеркал и размеров самой картинки.
Изображения разных размеров, функция sprite() задает все спрайты одновременно, но если изображения не подгрузились, происходит боль - что-то вывелось, что-то нет. А если еще силами Аксмы прописывать анимацию и функции таким кнопкам - то там вообще ересь.
и вот как в код прописать строку предзагрузки всех изображений? Чтобы браузер получил ссылки на изображения, и начал копировать их себе в буфер, пока не появились функции sprite() для их вывода? как вариант думал создать страницу, на которой будет что-то крутиться, пока проходит загрузка.
Пробовал нативными инструментами Аксмы по типу выполнения функции после загрузки спрайта такое провернуть, не вышло. аргумент спрайт.visible становится true не после загрузки изображения, а практически сразу по завершению функции, и для динамичного отслеживания не подходит.
Цитата: Chris Nerson от 25.01.22, 11:16Гуру, поправьте, я оставлю "Дедовский" способ в духе аксмы.
Знаю, есть способы изящнее.Все картинки я вывел спрайтами через массив, можно с низким значением прозрачности.
далее код:
// Получение картинок и запись их в переменную
let images = document.querySelectorAll('img');// Объявление переменной и присваивание ей результат работы функции
let imageInterval = setInterval(() => {
x = 0;
// Создаем условие для очистки работы метода setInterval
images.forEach(function(item) {
console.log('image ' + item.complete);
if (item.complete) {
++x
};
})
//console.log(x);
//console.log(images.length);
if (x == images.length) {
clearInterval(imageInterval);// Очищаем переменную imageInterval
sprites(true);
goto("Main menu"); //переход в игру после загрузки
};
}, 50)Работает кривенько, но позволяет прогрузить все картинки из ссылок в кэш браузера.
Гуру, поправьте, я оставлю "Дедовский" способ в духе аксмы.
Знаю, есть способы изящнее.
Все картинки я вывел спрайтами через массив, можно с низким значением прозрачности.
далее код:
// Получение картинок и запись их в переменную
let images = document.querySelectorAll('img');
// Объявление переменной и присваивание ей результат работы функции
let imageInterval = setInterval(() => {
x = 0;
// Создаем условие для очистки работы метода setInterval
images.forEach(function(item) {
console.log('image ' + item.complete);
if (item.complete) {
++x
};
})
//console.log(x);
//console.log(images.length);
if (x == images.length) {
clearInterval(imageInterval);// Очищаем переменную imageInterval
sprites(true);
goto("Main menu"); //переход в игру после загрузки
};
}, 50)
Работает кривенько, но позволяет прогрузить все картинки из ссылок в кэш браузера.