Systems API
Позволяет использовать возможности ОС панели, работать с таймерами, управлять приложением и его событиями. | Обновлено: 27 Июля, 2014 Сообщить об ошибке |
Содержание
- 1 Открыть системное меню
- 2 Получить HWID панели
- 3 Закрыть приложение
- 4 Показать клавиатуру
- 5 Выполнить макросы элемента
- 6 Запустить другое приложение
- 7 Узнать информацию о памяти и кэше
- 8 Вывести информацию в консоль
- 9 Раскодировать ссылку
- 10 Удалить таймер
- 11 Повторение действий с промежутком
- 12 Отложенный запуск
- 13 Подписаться на событие
- 14 Отписаться от события
- 15 Приложение было запущено
- 16 Приложение работает
- 17 Приложение будет закрыто
- 18 Приложение сменило ориентацию
- 19 Клавиатура была показана
- 20 Приложение уходит в фон: EVENT_APP_ENTER_BACKGROUND
- 21 Приложение выходит из фона: EVENT_APP_ENTER_FOREGROUND
- 22 Приложение завершает работу: EVENT_APP_WILL_TERMINATE
- 23 Получение локального уведомления: EVENT_RECIEVE_NOTIFY
- 24 Создать эффект
- 25 Уточнить значение
- 26 Формулы вычислений
- 27 Копирование данных в буфер (IR.CopyToClipboard(text))
- 28 Обновление проекта по команде (IR.DownLoadProject)
- 29 Отправить локальное уведомление на iOS устройствах (IR.SendNotification)
- 30 Очистить список уведомлений на iOS устройствах (IR.ClearNotification)
- 31 Вычислить HASH и CRC
Открыть системное меню
Описание:
Функция позволяет открыть системное меню с предварительным вводом инженерного пароля. Выполнив команду, вы получите окно для ввода пароля, и после его ввода откроется системное меню.
Синтаксис:
IR.ShowSystemMenu();
Пример:
На странице Page 1, по нажатию на кнопку Item 1, откроем системное меню.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.ShowSystemMenu(); });
Особенности:
Без ввода инженерного пароля, получить доступ к системному меню через скрипт нельзя.
Загрузить:
Пример открытия системного меню >>
Получить HWID панели
Описание:
Переменная, позволяет получить HWID панели на которой запущено приложение.
Синтаксис:
IR.HWID;
На выходе:
Строка символов, определяющих HWID панели.
Пример:
На странице Page 1, по нажатию на кнопку Item 1 напечатаем в консоль отладки HWID панели.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.Log(IR.HWID); });
Особенности:
Что бы получить конкретный символ из IR.HWID, используйте, функцию charAt(номер_символа). Нумерация символов начинается с нуля.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.Log(IR.HWID.charAt(0)); });
Закрыть приложение
Описание:
Функция позволяет закрыть приложение. Доступно только на Andorid и Windows.
Синтаксис:
IR.Exit();
Пример:
На странице Page 1, по нажатию на кнопку Item 1 закроем приложение.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.Exit(); });
Особенности:
На iOS закрыть приложение при помощи скриптов нельзя. Если приложение у вас закрывалось раньше, то это было аварийное завершение приложения с потерей данных.
Показать клавиатуру
Описание:
Функция позволяет показать клавиатуру. Доступно только на Andorid и iOS.
Синтаксис:
IR.ShowKeyboard(type);
Входные параметры
- type - номер клавиатуры, 1 - алфавит, 2 - числа
Пример:
На странице Page 1, по нажатию на кнопку Item 1 покажем числовую клавиатуру.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.ShowKeyboard(2); });
Особенности:
- На iOS для скрытия клавиатуры можно использовать, команду IR.ShowKeyboard(0), на Android это не сработает.
- Для открытия клавиатуры, все другие клавиатуры должны быть скрыты. Если клавиатура уже открыта, например числовая, то команда открыть клавиатуру с алфавитом будет не удачной.
- Для открытия клавиатуры на Windows, используйте команду IR.Execute("osk").
Выполнить макросы элемента
Описание:
Функция выполняет макросы, настроенные в Object Properties / Programming из события элемента.
Вызов:
Для вызова функции нужен доступ к элементу (страница, попап или графический элемент).
Синтаксис:
Item.StartAction(Событие);
Входные параметры
- Событие - событие, макросы которого, требуется выполнить.
Пример:
После запуска приложения, выполним макросы из события PRESS элемента Item 1 со страницы Page 1
IR.AddListener(IR.EVENT_START, 0, function(){ IR.GetItem("Page 1").GetItem("Item 1").StartActions(IR.EVENT_ITEM_PRESS); });
Использование:
- Контейнер макросов
- Вызов действий кнопки с одной страницы на другой, для сценариев или быстрых клавиш.
Особенности:
- Визуализация активации события, например нажатия на элемент, макросы которого выполняют, не происходит. Действия элемента выполнятся, но сам он, ни как не будет визуально участвовать в процессе.
- При выполнении учитываются, только макросы настроенные в редакторе. События объявленные через скрипт выполнены не будут.
- Область исследована не до конца, возможно некоторые события не распознаются.
- Если вы столкнулись с задачей, которая решается этой функцией и познали некоторые не документированные тонкости ее использования - напишите нам.
Запустить другое приложение
Описание:
Функция позволяет запустить любое другое приложение, файл или сайт на панели, где запущен i2 Control.
Синтаксис:
IR.Execute(путь);
Входные параметры
- путь - путь к приложению, синтаксис пути, зависит от операционной системы на которой запущен i2 Control.
Пример:
После запуска приложения, откроем сайт
IR.AddListener(IR.EVENT_START, 0, function(){ IR.Execute("http://iridiummobile.net"); // Пример ссылки });
Другие примеры:
IR.AddListener(IR.EVENT_START, 0, function(){ // OS Windows IR.Execute("http://iridiummobile.net"); // Пример ссылки IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент IR.Execute("cmd"); // Запустить командную строку IR.Execute("calc"); // Запустить калькулятор IR.Execute("c:\\Program Files\\iRidium\\iRidium.exe"); // Запуск программы // iOS - iPhone IR.Execute("http://iridiummobile.net"); // Пример ссылки IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент IR.Execute("tel:+1234567890"); // Позвонить по телефону IR.Execute("sms:+1234567890"); // Отправить смс IR.Execute("music:"); // Открыть приложение для прослушивания музыки IR.Execute("videos:"); // Открыть приложение для просмотра видео IR.Execute("ibooks://"); // Открыть приложение для чтения электронных книг IR.Execute("fb://feed"); // Открыть приложение Facebook IR.Execute("twitter://"); // Открыть приложение для Twitter // iOS - iPad IR.Execute("http://iridiummobile.net"); // Пример ссылки IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент IR.Execute("music:"); // Открыть приложение для прослушивания музыки IR.Execute("videos:"); // Открыть приложение для просмотра видео IR.Execute("ibooks://"); // Открыть приложение для чтения электронных книг IR.Execute("fb://feed"); // Открыть приложение Facebook IR.Execute("twitter://"); // Открыть приложение для Twitter // OS Android IR.Execute("http://iridiummobile.net"); // Пример ссылки IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент IR.Execute("tel:+1234567890"); // Позвонить по телефону IR.Execute("sms:+1234567890"); // Отправить смс IR.Execute("file:///tmp/android.txt"); // Открыть файл });
Особенности:
- Для запуска приложений на Windows, каждый обратный слеш, должен быть заменен на двойной обратный слеш.
IR.Execute("c:\\Program Files\\iRidium\\iRidium.exe")
Узнать информацию о памяти и кэше
Описание:
Переменная, возвращает информацию о памяти и кэше.
Синтаксис:
IR.GetSystemInfo("GC_MEMORY_INFO");
Пример:
По нажатию на кнопку Item 1 на странице Page 1, напечатаем всю информацию о памяти и кэше в консоль.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").UsedMemory); IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").TotalMemory); IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").ChunkHeaps); IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").ChunkCache); IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").MemoryHeaps); IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").MemoryBusyBlocks); IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").MemoryFreeBlocks); });
Вывести информацию в консоль
Описание:
Используется для вывода информации в консоль отладки в процессе работы приложения-клиента i2 Control. Консоль отладки доступа только для Windows.
Синтаксис:
IR.Log(text);
Входные параметры:
- text - любые данные: строки, числа, объекты, массивы. Обрати внимание, что после того как данные переданы, как параметр, они конвертируются в строку.
Пример 1:
В момент запуска приложения выведем в консоль отладки предложение.
IR.AddListener(IR.EVENT_START, 0, function(){ IR.Log("Hello iRidium!"); });
Пример 2:
В момент запуска приложения выведем в консоль отладки результат сложения двух чисел.
IR.AddListener(IR.EVENT_START, 0, function(){ // создадим переменную a; var a = 8; // создадим переменную b; var b = 16; // создадим переменную c и выполним сложение значений переменных a и b; var c = a + b; // выведем в консоль отладки результат сложения, сохраненный в переменной c; IR.Log(c); // в консоли отобразится значение 24; // точно такое же значение можно вывести в консоль отладки без сохранения суммы, // выполнив сложение прямо в параметрах функции IR.Log(a + b); // в консоли отобразится значение 24; // или даже без использования переменных IR.Log(8 + 16); // в консоли отобразится значение 24; // вывод данных в консоль отладки может быть более инфмормативным, так как // можно комбинировать вывод значений переменных и вывод строк, например // перед выводом значения суммы a + b напишем объяснение, что это "Сумма", но // вычисление суммы обрамим в скобки (a + b), это не обходимо для отделения разные типов // данных - строк и чисел, если этого не сделать будет произведена конвертация в строку // и конкатенация, после чего выведено "Сумма: 816". IR.Log("Сумма: " + (a + b)); // в консоли отобразится "Сумма: 24"; });
Раскодировать ссылку
Описание:
Функция, используется преобразования ссылки содержащей закодированные символы. Например: %23
Синтаксис:
IR.UrlDecode("ссылка");
Входные параметры:
- ссылка - строка ссылка, содержащая закодированные символы.
Пример:
После запуска приложения, раскодируем ссылку и выведем в консоль отладки.
IR.AddListener(IR.EVENT_START, 0, function(){ var link = IR.UrlDecode("http://192.168.1.128:1400/getaa?s=1&u%3as97881%3fs"); IR.Log(link); // выведем в консоль отладку раскодированную ссылку });
Особенности:
- Если ссылка не содержит закодированных символов, на выходе будет ссылка, та же что и на вхоже
- Можно использовать функцию несколько раз, для устранения нескольких уровней кодирования.
Удалить таймер
Описание:
Функция используется для удаления таймеров SetTimeout и SetInterval.
Синтаксис:
IR.ClearInterval(id);
Входные параметры:
- id - идентификатор таймера IR.SetTimeout или IR.SetInterval. Получить идентификатор можно, только при создании таймера.
Пример:
При запуске приложения, создадим таймер и сохраним его идентификатор в переменную id. По нажатию на кнопку Item 1 на страница Page 1 удалим таймер.
IR.AddListener(IR.EVENT_START, 0, function(){ var id = IR.SetInterval(100, function(){ // любые действия }); }); IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.ClearInterval(id); });
Повторение действий с промежутком
Описание:
Таймер, используется для повторения действий много раз, через промежуток времени.
Синтаксис:
IR.SetInterval(время, функция);
Входные параметры
- время - промежуток времени, мс
- функция - имя функции
Пример:
После запуска приложения, будем повторять каждые 400 мс функцию message, которая печатает в консоль отладки сообщение.
IR.AddListener(IR.EVENT_START, 0, function(){ IR.SetInterval(400, message); function message(){ IR.Log("Hello"); } });
Отложенный запуск
Описание:
Таймер, используется для запуска функции один раз, после истечения указанного количества времени.
Синтаксис:
IR.SetTimeout(время, функция);
Входные параметры:
- время (число) - количество времени (мс)
- функция (объект) - имя функции
Пример:
При запуске приложения, создадим таймер отложенного запуска, который запустит функцию test спустя 400 мс.
IR.AddListener(IR.EVENT_START, 0, function(){ IR.SetTimeout(400, test); function test(){ // любые действия } });
Подписаться на событие
Описание:
Функция, позволяет подписаться на событие и выполнить набор действий при его возникновении.
Синтаксис:
IR.AddListener(событие, объект, функция);
Входные параметры:
- событие (постоянная) - имя события из списка событий.
- объект (объект) - идентификатор для доступа к объекту, это может быть:
как графический элемент, так и драйвер,
- функция (объект) - имя функции, содержащей набор действий
Пример 1:
Подпишемся на событие нажатия на кнопку Item 1 на странице Page 1 и напечатаем в консоль отладки о том, что была нажата эта кнопка.
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ IR.Log("Кнопка Item 1 была нажата"); });
Пример 2:
Подпишемся на событие запуска приложения, но в отличие от "Примера 1", 2-ым параметром передадим 0, так как доступ к этому событию уже есть.
IR.AddListener(IR.EVENT_START, 0, function(){ IR.Log("Приложение было запущено"); });
Отписаться от события
Описание:
Функция, позволяет отключить подписку на событие.
Синтаксис:
IR.RemoveListener(событие, объект, функция);
Входные параметры:
- событие (постоянная) - имя события из списка событий.
- объект (объект) - идентификатор для доступа к объекту, это может быть:
как графический элемент, так и драйвер,
- функция (объект) - имя функции или ссылка на функцию, которая была использована при подписке на событие.
Пример 1:
Отключим подписку на событие нажатия на кнопку Item 1 на странице Page 1. Функция press является именованной функцией и должна быть определена в коде.
// Определяем функцию function press(){ // действия } // Подписываемся IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), press); // Отключаем подписку IR.RemoveListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), press);
Пример 2:
Отключим подписку на событие нажатия на кнопку Item 1 на странице Page 1. Функция является не именованной и при подписке на событие, ссылка на нее, была сохранена в переменную link_press.
// Создаем переменную для хранения ссылки на функцию var link_press; // Подписываемся и сохраняем ссылку на функцию в переменную IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), link_press = function(){ // Действия }); // Отключаем подписку IR.RemoveListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), link_press);
Приложение было запущено
Имя:
IR.EVENT_START
Описание:
Событие, обозначает, что приложение было запущено.
Синтаксис подписки:
IR.AddListener(IR.EVENT_START, 0, Имя_Функции)
Синтаксис отписки:
IR.RemoveListener(IR.EVENT_START, 0, Имя_Функции)
Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.
Пример 1:
После запуска приложения, напишем в консоль отладки сообщение.
IR.AddListener(IR.EVENT_START, 0, ShowMessage); function ShowMessage(){ IR.Log("Приложение было запущено"); }
Пример 2:
Сделаем тоже самое, только с неименованной функцией.
IR.AddListener(IR.EVENT_START, 0, function(){ IR.Log("Приложение было запущено"); });
Приложение работает
Имя:
IR.EVENT_WORK
Описание:
Событие, обозначает, что приложение работает. Соответственно, это событие, в отличии от любого другого, срабатывает не один раз, а много раз.
IR.AddListener(IR.EVENT_WORK, 0, Имя_Функции)
Синтаксис отписки:
IR.RemoveListener(IR.EVENT_WORK, 0, Имя_Функции)
Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.
Пример 1:
Подпишемся на событие и пока приложение работает, будем печатать в лог сообщение.
IR.AddListener(IR.EVENT_WORK, 0, ShowMessage); function ShowMessage(){ IR.Log("Приложение работает"); }
Пример 2:
Сделаем тоже самое, только с неименованной функцией.
IR.AddListener(IR.EVENT_WORK, 0, function(){ IR.Log("Приложение работает"); });
Приложение будет закрыто
Имя:
IR.EVENT_EXIT
Описание:
Событие, обозначает, что приложение будет закрыто. Активируется в момент получения команды на закрытие приложения.
Синтаксис подписки:
IR.AddListener(IR.EVENT_EXIT, 0, Имя_Функции)
Синтаксис отписки:
IR.RemoveListener(IR.EVENT_EXIT, 0, Имя_Функции)
Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.
Пример 1:
При выходе из приложения, запишем в глобальную переменную с именем Test сообщение.
IR.AddListener(IR.EVENT_EXIT, 0, SaveMessage); function SaveMessage(){ IR.SetVariable("Global.Test", "Приложение закрыто успешно"); }
Пример 2:
Сделаем тоже самое, только с неименованной функцией.
IR.AddListener(IR.EVENT_EXIT, 0, function(){ IR.SetVariable("Global.Test", "Приложение закрыто успешно"); });
Приложение сменило ориентацию
Имя:
IR.EVENT_ORIENTATION
Описание:
Событие, обозначает, что приложение сменило ориентацию. Событие может быть вызвано поворотом панели, или горячей клавишей F5 на Windows.
Синтаксис подписки:
IR.AddListener(IR.EVENT_ORIENTATION, 0, Имя_Функции)
Синтаксис отписки:
IR.RemoveListener(IR.EVENT_ORIENTATION, 0, Имя_Функции)
Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.
Получаемые аргументы
- orientation - номер новой ориентации приложения;
Диапазон значений
- 1 - Вертикальная, кнопка Home внизу, константа: IR.ORIENTATION_PORTRAIT
- 2 - Вертикальная, кнопка Home вверху, константа: IR.ORIENTATION_PORTRAIT_UPSIDE_DOWN
- 3 - Горизонтальная, кнопка Home справа, константа: IR.ORIENTATION_LANDSCAPE_LEFT
- 4 - Горизонтальная, кнопка Home слева, константа: IR.ORIENTATION_LANDSCAPE_RIGHT
Пример 1:
После смены ориентации приложения, напишем к консоль отладки сообщение с номером ориентации.
IR.AddListener(IR.EVENT_ORIENTATION, 0, Message); function Message(orientation){ IR.Log("Карамба! Кто-то повернул iPad, номер ориентации: " + orientation); }
Пример 2:
Сделаем тоже самое, только с неименованной функцией.
IR.AddListener(IR.EVENT_ORIENTATION, 0, function(orientation){ IR.Log("Карамба! Кто-то повернул iPad, номер текущей ориентации: " + orientation); });
Особенности:
После запуска приложения, узнать текущую ориентацию устройства нельзя, до тех пор пока приложение не сменит ориентацию первый раз.
Загрузить:
Пример работы с событием >>
Клавиатура была показана
Имя:
IR.EVENT_KEYBOARD_SHOW
Описание:
Событие, активируется при показе встроенной в ОС панели клавиатуры.
Синтаксис подписки:
IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, Имя_Функции)
Синтаксис отписки:
IR.RemoveListener(IR.EVENT_KEYBOARD_SHOW, 0, Имя_Функции)
Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.
Пример 1:
При показе клавиатуры, напишем в консоль отладки сообщение.
IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, ShowMessage); function ShowMessage(){ IR.Log("Клавиатура была показана!"); }
Пример 2:
Сделаем тоже самое, только с неименованной функцией.
IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, function(){ IR.Log("Клавиатура была показана!"); });
Приложение уходит в фон: EVENT_APP_ENTER_BACKGROUND
Это событие срабатывает когда приложение iRidium уходит в фон
IR.AddListener(IR.EVENT_APP_ENTER_BACKGROUND, 0, function() { IR.Log("APP_ENTER_BACKGROUND"); app_in_background = true; });
Приложение выходит из фона: EVENT_APP_ENTER_FOREGROUND
Это событие срабатывает, когда приложение iRidium выходит из фона
IR.AddListener(IR.EVENT_APP_ENTER_FOREGROUND, 0, function() { IR.Log("APP_ENTER_FOREGROUND"); app_in_background = false; });
Приложение завершает работу: EVENT_APP_WILL_TERMINATE
Это событие срабатывает перед тем, как приложение iRidium, будет завершено
IR.AddListener(IR.EVENT_APP_WILL_TERMINATE, 0, function() { IR.Log("APP_WILL_TERMINATE"); });
Получение локального уведомления: EVENT_RECIEVE_NOTIFY
Эта событие срабатывает, когда приложение iRidium получает локальное уведомление
Синтаксис: IR.AddListener(IR.EVENT_RECIEVE_NOTIFY, 0, function(text, id)
- text - текст уведомления
- id - идентификатор уведомления (любой текст)
IR.AddListener(IR.EVENT_RECIEVE_NOTIFY, 0, function(text, id) { if(app_in_background == true) { IR.Log("SCRIPT_EVENT_RECIEVE_NOTIFY"); IR.Log(text + " " + id); if(id == "D1") IR.ShowPopup("Popup 1"); // если получено уведомление с идентификатором D1, показать Popup 1 else if(id == "D2") IR.ShowPopup("Popup 2"); // если получено уведомление с идентификатором D2, показать Popup 2 else if(id == "D3") IR.ShowPopup("Popup 3"); // если получено уведомление с идентификатором D3, показать Popup 3 } });
Создать эффект
Описание:
Функция, позволяет создать эффект во время работы приложения и использовать его в группе эффектов для скрытия или показа всплывающего окна.
Применение:
- Необходимо показывать / скрывать одно и тоже всплывающее окно c разными группами эффектами в одном проекте.
- Дополнение групп эффектов созданных в редакторе.
Синтаксис:
var Имя_Переменной = IR.CreateEffect(Эффект);
Входные параметры:
- Эффект (число) - имя эффекта доступное в iRidium. Ниже представлены имена эффектов:
Эффекты:
- IR.EFFECT_FADE - плавное появление / исчезновение;
- IR.EFFECT_ROTATE - вращение вокруг своей оси, цент поворота середина всплывающего окна;
- IR.EFFECT_SCALE - увеличение / уменьшение;
- IR.EFFECT_SLIDE - движение в / из стороны;
- IR.EFFECT_TVSCAN - сжатие по горизонтали;
Свойства Эффектов:
- Group (число) - Номер группы эффектов, в которой будет находиться эффект. Рекомендуется использовать номера групп эффектов начиная с 1000, это убережет вас от пересечения с группами эффектов, которые создает редактор. В случае если требуется дополнить группы эффектов созданные в редакторе на эффекты созданные динамически, то используйте это осознанно.
- Delay (число, мс)- задержка перед выполнением эффекта;
- Duration (число, мс) - продолжительность эффекта;
- Tween (число) - формула вычисления, см. список формул вычислений
Пример 1:
В момент запуска приложения создадим эффект Fade, зададим для него параметры, поместим в группу эффектов и покажем всплывающее окно с этой группой.
IR.AddListener(IR.EVENT_START, 0, function(){ // Создаем, сохраняем в переменную var Fade = IR.CreateEffect(IR.EFFECT_FADE); // Номер группы Fade.Group = 1000; // Задержка Fade.Delay = 0; // Продолжительность Fade.Duration = 400; // Формула вычисления Fade.Tween = 0; // Показ всплывающего окна IR.ShowPopup("Popup 1", 1000) });
Уточнить значение
Описание:
Функция, позволяет получить уточнить значения на указанном отрезке.
Синтаксис:
var Имя_Переменной = IR.Tween(Вычисление, Номер, Начало, Конец, Уточнение);
Входные параметры:
- Вычисление (число) - имя формулы для вычисления, см список формулы вычислений
- Номер (число) - номер значения, которое требуется узнать.
- Начало (число) - первое значение для вычисления
- Конец (число) - последнее значение для вычисления
- Уточнение (число) - определяет степень уточнение отрезка, чем больше это число, тем точнее значение можно узнать.
Применение
- Уточнение диапазона
- Анимация графических элементов
Пример 1:
При запуске приложения, напечатаем в консоль отладки значение 10-ого элемента из диапазона от 0 до 100, уточненного до 255 точек.
IR.AddListener(IR.EVENT_START, 0, function(){ var value = IR.Tween("TWEEN_LINEAR", 10, 0, 100, 255); IR.Log(value); });
Пример 2:
Во время работы приложения, будем изменять прозрачность элемента от 0 до 255, за 500 мс.
// Объявляем переменную timer для наращивания времени // Объявляем переменную Tween для хранения значения математической функции var timer = 0; var Tween = 0; // Создаем слушателя на событие Work и передаем текущее время IR.AddListener(IR.EVENT_WORK, 0, function(time){ // Наращиваем время timer += time; // Сохраняем значение математической функции Tween = IR.Tween("TWEEN_LINEAR", timer, 0, 255, 500); // Записываем в свойство Opacity графического элемента // значение математической функции IR.GetPage("Page 1").GetItem("Item 1").GetState(0).Opacity = Tween; });
Формулы вычислений
Описание:
Формула определяет то, как будет вычисляться промежуточное значение на выбранном отрезке значений. Каждая формула имеет свой номер, который следует передать в функцию IR.Tween первым параметром.
- TWEEN_LINEAR: 0,
- TWEEN_SINE_IN: 1,
- TWEEN_SINE_OUT: 2,
- TWEEN_SINE_IN_OUT: 3,
- TWEEN_QUINT_IN: 4,
- TWEEN_QUINT_OUT: 5,
- TWEEN_QUINT_IN_OUT: 6,
- TWEEN_QUART_IN: 7,
- TWEEN_QUART_OUT: 8,
- TWEEN_QUART_IN_OUT: 9,
- TWEEN_QUAD_IN : 10,
- TWEEN_QUAD_OUT: 11,
- TWEEN_QUAD_IN_OUT: 12,
- TWEEN_EXPO_IN: 13,
- TWEEN_EXPO_OUT: 14,
- TWEEN_EXPO_IN_OUT: 15,
- TWEEN_ELASTIC_IN: 16,
- TWEEN_ELASTIC_OUT: 17,
- TWEEN_ELASTIC_IN_OUT:18,
- TWEEN_CUBIC_IN: 19,
- TWEEN_CUBIC_OUT: 20,
- TWEEN_CUBIC_IN_OUT: 21,
- TWEEN_CIRC_IN: 22,
- TWEEN_CIRC_OUT: 23,
- TWEEN_CIRC_IN_OUT: 24,
- TWEEN_BOUNCE_IN: 25,
- TWEEN_BOUNCE_OUT: 26,
- TWEEN_BOUNCE_IN_OUT: 27,
- TWEEN_BACK_IN: 28,
- TWEEN_BACK_OUT: 29,
- TWEEN_BACK_IN_OUT: 30
Примечание:
Для более удобного использования, без запоминания номеров, используйте скрипт, позволяющий использовать вместо номеров, имена формул. Скрипт следует добавить в проект и не изменять.
Загрузить скрипт:
https://s3.amazonaws.com/iridium2_downloads/Script_Drivers/IR_Tweens.js
Копирование данных в буфер (IR.CopyToClipboard(text))
Описание:
Функция позволяет копировать строки в буфер устройства.
Синтаксис:
IR.CopyToClipboard(text);
Входные параметры:
- text - данные, которые могут быть конвертированы в строку.
Пример:
IR.AddListener(IR.EVENT_START, 0, function(){ // Создадим переменную HWID var HWID = IR.HWID; // Копируем HWID панели на которой запущено приложение IR.CopyToClipboard(IR.GetVariable("System.Device.Name") + " HWID:" + HWID); });
Обновление проекта по команде (IR.DownLoadProject)
Описание:
Функция позволяет изменить имя загружаемого по HTTP проекта и использовать режим мультипроектности
Синтаксис:
IR.DownLoadProject( { type:parsed_url.scheme, host:parsed_url.authority, path:parsed_url.path + '?' + parsed_url.query, multiproject: Value, name: Text });
Входные параметры:
- type - тип протокола, https/http
- host - адрес
- path - путь к файлу проекта, в начале пути к файлу проекта приписывается "/"
- multiproject - режим мультипроектности, 1-включен 0-отключен
- name - новое имя проекта
Пример:
//Функция возвращает ассоциативный массив, возвращающий любые имеющиеся компоненты URL. function parse_url(url) { var pattern = RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?"); var matches = url.match(pattern); return { scheme: matches[2], authority: matches[4], path: matches[5], query: matches[7], fragment: matches[9] }; } // Скачиваем проект и меняем имя проекта на "TestNew" function HTTPUpdate(url) { IR.Log(url); var parsed_url = parse_url(url); var downloader = IR.DownLoadProject( { type:parsed_url.scheme, host:parsed_url.authority, path:parsed_url.path + '?' + parsed_url.query, multiproject: 1, name: "TestNew" }); } // Вызываем функцию для загрузки проекта, параметр которой является ссылка на загружаемый проект function Update_new() { HTTPUpdate('https://drive.google.com/uc?export=view&id=0B2nsHBulOZWTR2tUaW85Vlo1Yzg'); // Выведем в лог количество проектов на панели var count = IR.GetDesignsCount(); IR.Log("Count Projects = " + count); }
Особенности:
- Имя задается в свойстве name, файловая система в момент загрузки проекта получает новое имя и создает файл с новым именем и в этот файл записывает данные.
Примечание:
- Загружаемый проект получает имя, заданное через параметр name.
Загрузить:
Пример работы с функцией >>
Отправить локальное уведомление на iOS устройствах (IR.SendNotification)
IR.SendNotification - эта функция используется для отправки локального уведомления (Local notification) на iOS устройствах.
Синтаксис: IR.SendNotification(text, delay, sound_id, badge_increment_num, id);
- text - текст уведомления
- delay (default=0) - задержка появления уведомления (в секундах)
- sound_id (default=0) - идентификатор звука, с которым будет вызвано уведомления
- badge_increment_num (default=0) - на сколько увеличить число на иконке уведомления на иконке приложения
- id (default=None) - уникальный идентификатор уведомления
Пример:
// Идентификаторы звуков SOUND_ID = { None : 0, // без звука Default : 1, // стандартный звук уведомления на iOS Ringing : 2, // стандартный рингтон }; // Создание необходимых переменных string = "Crestron " + name + " value = " + value; id = "" + name; delay = 0; // seconds sound_id = SOUND_ID.Default; // badge - числовая иконка на иконке приложения (numeric icon on application icon) badge_increment_num = 1; IR.SendNotification(string, delay, sound_id, badge_increment_num, id); });
Очистить список уведомлений на iOS устройствах (IR.ClearNotification)
IR.ClearNotification - эта функция используется для очистки списка уведомлений на iOS устройствах.
Пример:
//при нажатии на кнопку на странице Page 1 с именем "clr_notty" очистить список уведомлений на iOS устройстве clr_notty = IR.GetPage("Page 1").GetItem("clr_notty"); IR.AddListener(IR.EVENT_ITEM_PRESS, clr_notty, function() { IR.ClearNotification(); });
Вычислить HASH и CRC
IR.CalculateCRC - метод, используется для подсчета CRC суммы.
IR.CalculateHash - метод, используется для подсчета Hash суммы.
Пример:
var crc8 = IR.CalculateCRC(IR.CRC_8, "Test")); var crc16 = IR.CalculateCRC(IR.CRC_16, "Test")); var crc32 = IR.CalculateCRC(IR.CRC_32, "Test")); var hashMD5 = IR.CalculateHash(IR.HASH_MD5, "Test")); var hashSHA1 = IR.CalculateHash(IR.HASH_SHA1, "Test")); var hashSHA256 = IR.CalculateHash(IR.HASH_SHA256, "Test")); var hashSHA384 = IR.CalculateHash(IR.HASH_SHA384, "Test")); var hashSHA512 = IR.CalculateHash(IR.HASH_SHA512, "Test"));