Дата и время без плагинов

исходники и примеры в формате .capx

Сообщение Дата и время без плагинов
» 09 авг 2014, 02:52

Доброго времени суток!

 Предыстория
Недавно я подумал, почему это я сижу без сторонних плагинов и пошел на оф. сайт Scirra и скачал небольшую кучку плагинов и отправился изучать их возможности. После изучения нескольких я понял, что они чрезвычайно полезны, и также я понял, что можно реализовать их функционал без них самих, только стандартными средствами. Попробую выпустить целую серию таких исходников, которые помогают обычным C2-шникам обойтись без плагинов :biggrin:

Изображение

Основная цель: сделать удобный внутренний интерфейс для получения текущей даты пользователя из игры C2 без использования сторонних плагинов.

Воодушевление/похожий плагин: Date (под авторством Rex.Rainbow'а).

Изображение


Конечный результат: проект способен без плагинов получать дату и время в разных форматах, создавать/удалять таймеры (а лучше сказать, метки времени) и получать разницу во времени между ним и текущим временем.
В большинстве своем исходник полностью аналогичен функционалу плагина, в некоторых даже его опережая (всего около 30 функций в проекте, не считая событий для демонстрации возможностей).

Тех. информация: для получения текущей даты и времени достаточно только объекта Browser (ну, и конечно то, на чем собираемся использовать полученную дату и время), для комфортной работы потребуется еще объект Function, и для работы с таймерами понадобиться объект-хранилище (в примере, объект Dictionary). В исходнике используется 30 событий и их действий (в виде функций-оберток) + 30 событий для украшения кода (привычка) + 2 группы. Можно все подужать и получить 30 событий (или и того меньше, если нужен только ограниченный функционал).

Скачать:
dateTimeJS.capx
(176.98 КБ) Скачиваний: 733
.
Аватара пользователя

Игродел
Сообщений: 226
Я тут с 11 фев 2013
Откуда: Южно-Сахалинск
Репутация 184 [ ? ]

Сообщение Дата и время без плагинов
» 02 окт 2014, 09:57

А кто то на форуме говорил, что это не возможно. Отличный пример. +
Аватара пользователя

Участник
Сообщений: 7
Я тут с 21 сен 2014
Репутация 0 [ ? ]

Сообщение Дата и время без плагинов
» 16 окт 2014, 18:55

странно, почему то месяц показывает 9 а за оном 10-ый .... , можно исправить?
Изображение
Аватара пользователя

Участник
Сообщений: 122
Я тут с 14 фев 2013
Лицензия: Personal
Репутация 6 [ ? ]

Сообщение Дата и время без плагинов
» 17 окт 2014, 07:04

yorik59 писал(а):странно, почему то месяц показывает 9 а за оном 10-ый .... , можно исправить?

Это особенность JS и других языков программирования — январь это нулевой месяц :biggrin:
Как исправить — просто прибавляешь единицу к результату функции и все (можно еще даже лучше внутри JS кода прибавлять единицу).
Аватара пользователя

Игродел
Сообщений: 226
Я тут с 11 фев 2013
Откуда: Южно-Сахалинск
Репутация 184 [ ? ]

Сообщение Дата и время без плагинов
» 18 окт 2014, 18:56

Seryiza писал(а):Как исправить — просто прибавляешь единицу к результату функции и все (можно еще даже лучше внутри JS кода прибавлять единицу).

Спасибо за оперативность.
Изображение
Аватара пользователя

Участник
Сообщений: 122
Я тут с 14 фев 2013
Лицензия: Personal
Репутация 6 [ ? ]

Сообщение Дата и время без плагинов
» 19 окт 2014, 17:56

Seryiza писал(а):
yorik59 писал(а):странно, почему то месяц показывает 9 а за оном 10-ый .... , можно исправить?

Это особенность JS и других языков программирования — январь это нулевой месяц :biggrin:
Как исправить — просто прибавляешь единицу к результату функции и все (можно еще даже лучше внутри JS кода прибавлять единицу).

в итоге... увы... ничего не понял. Можно подробнее как реализовать время суток из Вашего примера? По урокам понимаю как работать с переменными, а как из функц. Может есть какое решение именно по Вашему примеру?
Изображение
Аватара пользователя

Участник
Сообщений: 122
Я тут с 14 фев 2013
Лицензия: Personal
Репутация 6 [ ? ]

Сообщение Дата и время без плагинов
» 20 окт 2014, 06:14

yorik59 писал(а):в итоге... увы... ничего не понял. Можно подробнее как реализовать время суток из Вашего примера? По урокам понимаю как работать с переменными, а как из функц. Может есть какое решение именно по Вашему примеру?

Для вызова функции используем f.Call("ИмяФункции"). Где f — имя объекта функций (в примере объект называется как раз f), и "ИмяФункции" — собственно, наименование функции.

Для получения времени суток (в привычном для человека формате 12:00), нужно использовать вот это:
f.Call("getCurrHours") & ":" & zeropad(f.Call("getCurrMins"), 2)

Вызовы функций — получение времени (часов и минут), а выражение zeropad(a, n) делает число минут с ведущим нулем (например, 4 минуты будут отображаться именно как "04", а не "4").
Аватара пользователя

Игродел
Сообщений: 226
Я тут с 11 фев 2013
Откуда: Южно-Сахалинск
Репутация 184 [ ? ]

Сообщение Дата и время без плагинов
» 20 окт 2014, 10:29

Полезная вещь !
Аватара пользователя

Игродел
Сообщений: 3538
Я тут с 30 окт 2012
Двиг: C2\Unity
Лицензия: Personal
Skype: asmatrix116
VK: vk.com/red.gear
Репутация 203 [ ? ]

Сообщение Дата и время без плагинов
» 20 окт 2014, 16:24

Так это же обычный eval()!
Можно всё что угодно впихнуть в него и интерпретатор это исполнит.
Смотреть "Risks with Javascript string execution"
Аватара пользователя
dev

Участник
Сообщений: 11
Я тут с 17 окт 2014
Репутация 0 [ ? ]

Сообщение Дата и время без плагинов
» 21 окт 2014, 06:02

dev писал(а):Так это же обычный eval()!
Можно всё что угодно впихнуть в него и интерпретатор это исполнит.
Смотреть "Risks with Javascript string execution"

Вот-вот, знающий человек :biggrin:
Выложил исходник, чтобы незнающие JS люди могли спокойно работать с датой и временем, хотя опытному C2'шнику знания JS (Хотя бы базовые) настоятельно рекомендуется знать :blum:
Аватара пользователя

Игродел
Сообщений: 226
Я тут с 11 фев 2013
Откуда: Южно-Сахалинск
Репутация 184 [ ? ]



Вернуться в Исходники и Примеры для Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх