Pull to refresh
30
0
Антон Лаврёнов @lavrton

Web apps developer, Javascript ninja

Send message

В данном примере результов нет, так как delayedLog просто выводил в консоль. Но если нужны то:


const results = await Promise.all(array.map(delayedLog););
Не обязательно всё выпиливать на отдельные части. Можно только некоторые, особо тяжелые модули. И кстати в статье описано что не обязательно ждать дейсвтвий пользователя. Я описал как загружать модуль в фоне сразу после первоначальной загрузки.
Согласен, map выглядет намного проще. Про производительность у меня есть сомнения (да-да, я прочитал дискуссию по ссылке), но всё же следует проверить самому. В любом случае, я не думаю что разница большая.
Почему же я теряю время?
Stage представляет собой div элемент. Layer — это слой canvas. Т.е. можно использовать несколько холстов.
Это не баг. Это было сделано специально. Сделал ограничение что только левой кнопкой мыши можно перетаскивать объекты. Думаю о том, чтобы сделать это поведение настраиваемым.
Таких объектов в Konva.js нет. Коллизии можно считать самостоятельно или использовать другой фреймворк.
Нет. И не планируется. Есть достаточно много отдельных физических движков на js.
1. Принципиальное отличие в том, что это canvas. Что лучше canvas или svg это отдельная тема и зависит от сферы применения. Можно поискать «canvas vs svg».

2. К сожалению не могу прокомментировать применение devicePixelRatio для десктоп устройств. Данная часть кода написанна не мной, а самостоятельно протестировать я не могу за не имением подходящего десктоп устройства. Я тестировал только на мобильном устройстве с retina. Спасибо за предложение по поводу ограничения максимального значения ratio. У вас на устройстве devicePixelRatio = 4, а чему равно «backingStoreRatio»? Так как увеличивается разрешение в (devicePixelRatio/backingStoreRatio) раз. Применение высокое разрешение опять же зависит от конкретного приложения.

3. Так получилось исторически. Сначала у объекта мог быть уникальный id и не уникальное имя (name). Потом пришел pull request по поводу того, что имен у одного объекта могло бы быть несколько (т.е. name это одна строка где имена разделены пробелом). Потом я добавил методы «addName», «removeName», «hasName». В результате получился некоторый аналог classList DOM узла. В комментарии написал «аналогия с css классами», так как интерфейс действительно получился очень похожий, но name не имеет никакого отношения к стилям в отличии от css class.
И часто получается делать что-то впервые в жизни? Я думаю это тяжело.
Я думаю человек может сам определить формулировку.
Кто-то может просто написать «участвовал в Хакатоне», заняв при этом первое место, если для него был важен сам факт участия, я не занятое место.
Да, действительно. Чтобы создать «общее» представление для Stage (Kinetic.Stage, fabric.Canvas, createjs.Stage) достаточно удобно использовать Backbone.View, передав в него ссылку на готовый canvas элемент в параметр el (спасибо e_asphyx). Если же работать с представлениями, которые не работают напрямую с canvas, а работают с объектами библиотеки, то сторонний плагин становится гораздо удобней. Передавать ссылку на canvas элемент в каждый View, который с canvas не работает, выглядит, на мой взгляд, как костыль.
Еще отличный способ изучения: играть в компьютерные игры на английском. Я делаю это следующим образом. Ставлю интересную для себя игру. Благо я обожаю RPG игры, которые, как правило, переполнены текстами (The witcher, Skyrim, Divinity original sin и т.п.). Перед компьютером лежит планшет, с открытым lingualeo. Новые слова сразу попадают в тренировки. Одно из важный правил — это «читать всё, что попадается» в игре — все диалоги, рецепты, книги (вы когда нибудь читали подробно книги в Skyrim? Мне вот, когда я играл на русском, было как-то лень, а оказывается там столько всего интересного).

Ах, да. Теперь есть хорошее оправдание для «бестолкового времяпровождения». Я же теперь не играю, я английский изучаю…
Почему только сейчас, после стольких лет работы за компьютером, я узнал о таком сочетании клавиш!? Спасибо.

Information

Rating
Does not participate
Registered
Activity