Краткий справочник по библиотеке DKTools
8 года 5 мес. назад - 8 года 5 мес. назад #100888
от DK
DK создал тему: Краткий справочник по библиотеке DKTools
Данная тема будет содержать различные примеры использования библиотеки DKTools, которые могут быть полезны.
Буду время от времени выкладывать новые примеры.
Задача:
Вам необходимо загрузить из папки img/characters/ N-ое количество изображений. Точное количество изображений вы не знаете, но знаете, что имена изображений называются по определенному шаблону (например, по возрастанию чисел). То есть, например: 1.png, 2.png, 3.png и т.д. или Actor1.png, Actor2.png и т.д.
Решение:
Возьмем следующий шаблон: название файла содержит Actor + число (Actor1.png, Actor2.png, Actor3.png, ...)
Тоже самое, но асинхронно:
Буду время от времени выкладывать новые примеры.
Задача:
Вам необходимо загрузить из папки img/characters/ N-ое количество изображений. Точное количество изображений вы не знаете, но знаете, что имена изображений называются по определенному шаблону (например, по возрастанию чисел). То есть, например: 1.png, 2.png, 3.png и т.д. или Actor1.png, Actor2.png и т.д.
Решение:
Возьмем следующий шаблон: название файла содержит Actor + число (Actor1.png, Actor2.png, Actor3.png, ...)
ВНИМАНИЕ: Спойлер!
Code:
'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);
});
}
Code:
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 }); // получаем файлы
Последнее редактирование: 8 года 5 мес. назад пользователем DK.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
8 года 5 мес. назад - 8 года 5 мес. назад #100897
от Lekste
Lekste ответил в теме Краткий справочник по библиотеке DKTools
А DK tools может выдать список файлов в директории, отфильтрованные по шаблону и отсортированные по-возрастанию?
Так было бы удобней: Не обязательно нумеровать по-порядку и отсутствие риска не догрузить часть файлов, из-за того, что пропущен один из файлов с номером (частая ситуация, когда готовишь много файлов или хочешь использовать в именах файлов доп. Идентификаторы и префиксы)
Ещё пожелание(если уже не сделано), создать подобие итератора для подобной задачи.
Т.е. как-то так: const it = FileManager::Directory(path).filter(“hero_face_”).getIterator()
while (file = it.next()) {
file.load(...)
}
Так было бы удобней: Не обязательно нумеровать по-порядку и отсутствие риска не догрузить часть файлов, из-за того, что пропущен один из файлов с номером (частая ситуация, когда готовишь много файлов или хочешь использовать в именах файлов доп. Идентификаторы и префиксы)
Ещё пожелание(если уже не сделано), создать подобие итератора для подобной задачи.
Т.е. как-то так: const it = FileManager::Directory(path).filter(“hero_face_”).getIterator()
while (file = it.next()) {
file.load(...)
}
Последнее редактирование: 8 года 5 мес. назад пользователем Lekste.
Спасибо сказали: DK
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
8 года 5 мес. назад #100898
от DK
DK ответил в теме Краткий справочник по библиотеке DKTools
Список файлов получить можно, а фильтровать и сортировать нужно самому под свои нужды.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
8 года 5 мес. назад #101005
от DK
DK ответил в теме Краткий справочник по библиотеке DKTools
Обновил пример в соответствии с версией 0.992
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.091 секунд
