Pull to refresh

Comments 7

А какой смысл для каждого источника изображения создавать новый объект Image? Насколько я знаю, число потоков в браузере ограничено, так что активно будет только несколько скачек. Имхо что-то типа thread pool подошло бы лучше, объект Image ведь можно использовать повторно.
нас не волнуют потоки браузера. Нам нужно, чтобы все изображения, которые необходимы для отрисовки игровой сцены были загружены и доступны в любой момент. Скажите, неприятное явление, когда появляется белый экран, и начинает постепенно появляться то земля, то дерево, то домик.
Я этому не противоречу :) Я к тому веду, что, скажем, есть у вас 50 изображений. Вы для всех 50 создали свой Image объект. Но они все сразу не начнут скачиваться. Начнет скачиваться одновременно какое-то число. Так что вы этим не выигрываете. А память эти неактивные Image будут занимать.
Я только это имел ввиду.
но в результате все равно нужно держать загруженных 50 Image объектов для 50 изображений, чтобы был доступ из сцены. Наша задача не просто загрузить изображения, а и предоставить к ним доступ
А как вы иначе получите доступ к картинкам для Canvas? Тут не прелоадер для CSS :hover где картинки нам неважны ибо описаны в HTML/CSS, тут нам нужны конкретные инстансы Image.

Другое дело, что кучу тайлов стоит сунуть в одну картинку и юзать по типу CSS Sprites — тогда мы получим быструю загрузку в один поток. Но нам на JS надо будет описать где-то координаты всех изображений. Это годится только для тех изображений, размеры которых фиксированы. Конечно так бывает чаще всего, но могут встречаться и исключения — их стоит выносить в отдельные файлы.
Учтите скорый переход на MooTools 1.3, замените $each на Array.each или вообще напишите this.options.images.each(function(obj){ /* */ })
Sign up to leave a comment.

Articles