Данная тема будет содержать различные примеры использования библиотеки DKTools, которые могут быть полезны.
Буду время от времени выкладывать новые примеры.
Задача:
Вам необходимо загрузить из папки img/characters/ N-ое количество изображений. Точное количество изображений вы не знаете, но знаете, что имена изображений называются по определенному шаблону (например, по возрастанию чисел). То есть, например: 1.png, 2.png, 3.png и т.д. или Actor1.png, Actor2.png и т.д.
Решение:
Возьмем следующий шаблон: название файла содержит Actor + число (Actor1.png, Actor2.png, Actor3.png, ...)
'use strict'; // используем строгий режим
const path = 'img/'; // путь к папке
const folderName = 'characters/'; // название папки
const template = /\bActor\d+.png/; // шаблон названия файла
const directory = new DKTools.IO.Directory(path, folderName); // получаем директорию
const result = directory.getFiles({ sync: true, template: template }); // получаем файлы
if (result.status === DKTools.IO.OK) { // файлы успешно получены
const files = result.data; // получаем данные
const bitmaps = []; // сюда будем записывать
_.forEach(files, function(file) {
const bitmap = ImageManager.loadCharacter(file.getBaseName()); // загружаем битмап
bitmaps.push(bitmap);
});
}
Тоже самое, но асинхронно:
const path = 'img/'; // путь к папке
const folderName = 'characters/'; // название папки
const template = /\bActor\d+.png/; // шаблон названия файла
const directory = new DKTools.IO.Directory(path, folderName); // получаем директорию
const bitmaps = []; // сюда будем загружать изображения
const callback = function(files) {
_.forEach(files, function(file) {
const bitmap = ImageManager.loadCharacter(file.getBaseName()); // загружаем битмап
bitmaps.push(bitmap);
});
};
directory.getFiles({ callback: callback, template: template }); // получаем файлы