List API
Создание нового списка
| Пример создания списка 0,5 Мб |
Синтаксис:
IR.CreateItem(IR.ITEM_LISTBOX, Name, Left, Top, Width, Height);
Параметры:
IR.ITEM_LISTBOX (тип элемента) - список; Name (строка) - имя списка; Left (число) - отступ слева; Top (число) - отступ сверху; Width (число) - ширина списка; Height (число) - высота списка.
Пример:
// На странице Page 1 создаем элемент типа список
IR.GetItem("Page 1").CreateItem(IR.ITEM_LISTBOX,"List 1", 0, 0, 64, 86);
// На попапе Popup 1 создаем элемент типа список
IR.GetItem("Popup 1").CreateItem(IR.ITEM_LISTBOX,"List 1", 0, 0, 64, 86);
Объект IR может использоваться, как ссылка на открытую страницу. Объект IR получает ссылку на страницу, в момент открытия страницы.
Открытие страницы происходит:
- При запуске приложения, событие IR.EVENT_START, открывается стартовая страница:
Пример 1
// Событие запуска приложения
IR.AddListener(IR.EVENT_START, 0, function(){
// На открытой странице создаем элемент типа список
IR.CreateItem(IR.ITEM_LISTBOX, "List 1", 32, 16, 128, 512);
}
Пример 2
// Событие запуска приложения
IR.AddListener(IR.EVENT_START, 0, function(){
//Обращаемся к странице по имени и создаем элемент типа список
IR.GetPage("Page 2").CreateItem(IR.ITEM_LISTBOX, "List 1", 600, 100, 512, 512);
});
- При использовании метода IR.ShowPage:
Пример 1
// Открываем страницу Page 1
IR.ShowPage("Page 1");
// На открытой странице создаем элемент типа список
IR.CreateItem(IR.ITEM_LISTBOX, "List 1", 32, 16, 128, 512);
Пример 2
// Событие при нажатии на элемент
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 2"), function(){
// Открываем страницу Page 2
IR.ShowPage("Page 2");
// На открытой странице создаем элемент типа список
IR.CreateItem(IR.ITEM_LISTBOX, "List 1", 16, 108, 512, 512);
// Вывод в лог о создании элемента типа список на открытой странице
IR.Log("Create List 1");
});
Получение доступа
| Пример получения доступа 0,2 Мб |
Для использования методов и свойств списка, необходимо получить ссылку на список.
Ссылку на список можно получить:
- при создании нового списка
// На странице Page 1 создаем элемент типа список
// и сохраняем ссылку на список в переменную List_1
var List_1 = IR.GetItem("Page 1").CreateItem(IR.ITEM_LISTBOX, "List 1", 32, 16, 128, 512);
- после создания списка с помощью iRidium Script, используя метод IR.GetItem
// На странице Page 1 создаем элемент типа список
IR.GetItem("Page 1").CreateItem(IR.ITEM_LISTBOX, "List 1", 32, 16, 128, 512);
// получаем ссылку на список и сохраняем в переменную List_1
var List_1 = IR.GetItem("Page 1").GetItem("List 1");
- После создания списка с помощью iRidium GUI Editor, используя метод IR.GetItem
// Получаем ссылку на список созданный в редакторе GUI Editor и сохраняем в переменную List_1
var List_1 = IR.GetItem("Page 1").GetItem("List 1");
Методы
Методы, используемые при работе со списком
CreateItem
| Пример добавления нового элемента, 0,4 Мб |
Добавляет новый элемент в список. Для использования метода необходимо получить доступ к списку. Количество элементов списка не должно превышать 65535.
Синтаксис:
List_1.CreateItem(Item, SubItem, {Property: Value, ..});
Параметры:
List_1 (список) - ссылка на список; Item (число) - номер элемента, начиная с 0; SubItem (число) - номер субэлемента на элементе, начиная с 1; 0 - сам элемент списка; Property (свойство) - свойство субэлемента, перечисляются через запятую, порядок не важен; Value (число, строка) - значение для свойства.
Пример:
// К списку List_1 добавляем новый элемент с номером 0
// у субэлемента с номером 1 в свойство Text пишем строку "Hello List!"
List_1.CreateItem(0, 1, {Text: "Hello List!"});
DeleteItem
| Пример удаления элемента 0,4 Мб |
Удаляет элемент из списка. Для использования метода необходимо получить доступ к списку.
Синтаксис:
List_1.DeleteItem(Item);
Параметры:
List_1 (список) - ссылка на список; Item (число) - номер элемента, начиная с 0.
Пример:
// Из списка List_1 удаляем элемент с номером 0 List_1.DeleteItem(0);
Clear
| Пример удаления всех элементов 0,4 Мб |
Удаляет все элемент из списка. Для использования метода необходимо получить доступ к списку.
Синтаксис:
List_1.Clear();
Пример:
// Из списка List_1 удалим все элементы List_1.Clear();
SetPosition
| Пример пролистывания списка 0,4 Мб |
Пролистывает список до указанного элемента. Для использования метода необходимо получить доступ к списку.
Синтаксис:
List_1.SetPosition(Item);
Параметры:
List_1 (список) - ссылка на список; Item (число) - номер элемента, начиная с 0;
Пример:
// Список List_1 перелистываем к элементу 2 List_1.SetPosition(2);
Особенности:
Для успешного перелистывания списка к указанному элементу:
- элемент должен уже существовать
- в момент выполнения команды SetPosition, список должен быть виден, это значит, что страница или попап содержащая список, должна быть в этот момент на экране
- после создания нового элемента списка, должно пройти не менее 100 мс, команда перелистывания идущая сразу же после команды создания нового элемента списка - выполнена не будет.
Свойства
Свойства списков
Template
| Пример чтения / записи шаблона списка 0,4 Мб |
Элементы списка создаются по шаблону. Шаблон элемента списка - попап. Свойство доступно для записи и чтения. Для использования свойства необходимо получить доступ к списку.
Синтаксис:
List_1.Template = PopupName;
Параметры:
List_1 (список) - ссылка на список; PopupName (строка) - имя попапа.
На выходе:
Имя попапа (строка).
Пример записи:
// Для списка List_1 установим шаблон с именем "Popup 1" List_1.Template = "Popup 1";
Пример чтения:
// Прочитаем шаблон у списка List_1 и напечатаем результат в консоль отладки iRidium Log IR.Log(List_1.Template); // в консоли отобразится, например "Popup 1"
Direction
| Пример чтения / записи направления списка 0,4 Мб |
Направление списка. Существует два направления - вертикальное и горизонтальное. Свойство доступно для записи и чтения. Для использования свойства необходимо получить доступ к списку.
Синтаксис:
List_1.Direction = Direction;
Параметры:
List_1 (список) - ссылка на список; Direction (число) - направление, 0 - вертикальное, 1 - горизонтальное.
На выходе:
Направление (число), 0 - вертикальное, 1 - горизонтальное.
Пример записи:
// Для списка List_1 установим горизонтальное направление List_1.Direction = 1;
Пример чтения:
// Прочитаем направление списка List_1 и напечатаем результат в консоль отладки iRidium Log IR.Log(List_1.Direction); // в консоли отобразится, например 1
ItemsCount
| Пример чтения количество элементов в списке 0,4 Мб |
Количество элементов в списке. Свойство доступно чтения. Для использования свойства необходимо получить доступ к списку.
Синтаксис:
List_1.ItemsCount;
На выходе:
Количество элементов в списке (число).
Пример чтения:
// Прочитаем количество элементов в списке List_1 и напечатаем результат в консоль отладки IR.Log(List_1.ItemsCount); // в консоли отобразится, например 10
Filter
| Пример работы с фильтром списка 1 Мб |
Фильтрует содержимое списка. Предназначен для поиска. Свойство доступно для чтения и записи. Для использования свойства необходимо получить доступ к списку.
Синтаксис:
List_1.Filter = Filter;
Параметры:
List_1 (список) - ссылка на список; Filter (строка) - фильтр.
На выходе:
Фильтр (строка).
Пример записи:
// Для фильтра списка List_1 установим шаблон с именем "А" List_1.Filter = "A";
Пример чтения:
// Прочитаем фильтр списка List_1 и напечатаем результат в консоль отладки IR.Log(List_1.Filter); // в консоли отобразится, например "A"
Пример 1:
// На странице Page 1 создаем элемент типа список
// и сохраняем ссылку на список в переменную List_1
var List_1 = IR.GetItem("Page 1").GetItem("Item 1");
// Событие, которое срабатывает при начале работы приложения
IR.AddListener(IR.EVENT_START,0,function()
{
// Прикрепляем шаблон к созданному листу
List_1.Template = "Popup 1";
// Создается 1-ый элемент и у субэлемента назначается свойства Text и Name равное "Curriculum"
List_1.CreateItem(0, 0, {Text: "Curriculum", Name:"Curriculum"});
// Создается 2-ой элемент и у субэлемента назначается свойства Text и Name равное "Privacy"
List_1.CreateItem(1, 0, {Text: "Privacy", Name: "Privacy"});
// Создается 3-ый элемент и у субэлемента назначается свойства Text и Name равное "Disciplinary"
List_1.CreateItem(2, 0, {Text: "Disciplinary ", Name: "Disciplinary "});
// Создается 4-ый элемент и у субэлемента назначается свойства Text и Name равное "Learning Support"
List_1.CreateItem(3, 0, {Text: "Learning Support", Name: "Learning Support"});
// Создается 5-ый элемент и у субэлемента назначается свойства Text и Name равное "Support"
List_1.CreateItem(4, 0, {Text: "Support", Name: "Support"});
// Для фильтра списка List_1 установим шаблон с именем "S"
List_1.Filter = "S";
});
Пример 2:
// На странице Page 1 создаем элемент типа список
// и сохраняем ссылку на список в переменную List_1
var List_1 = IR.GetItem("Page 1").GetItem("Item 1");
// Событие, которое срабатывает при начале работы приложения
IR.AddListener(IR.EVENT_START,0,function()
{
// Прикрепляем шаблон к созданному листу
List_1.Template = "Popup 1";
// Создается 1-ый элемент и у субэлемента назначается свойства Text и Name равное "Curriculum"
List_1.CreateItem(0, 0, {Text: "Curriculum", Name:"Curriculum"});
// Создается 2-ой элемент и у субэлемента назначается свойства Text и Name равное "Privacy"
List_1.CreateItem(1, 0, {Text: "Privacy", Name: "Privacy"});
// Создается 3-ый элемент и у субэлемента назначается свойства Text и Name равное "Disciplinary"
List_1.CreateItem(2, 0, {Text: "Disciplinary ", Name: "Disciplinary "});
// Создается 4-ый элемент и у субэлемента назначается свойства Text и Name равное "Learning Support"
List_1.CreateItem(3, 0, {Text: "Learning Support", Name: "Learning Support"});
// Создается 5-ый элемент и у субэлемента назначается свойства Text и Name равное "Support"
List_1.CreateItem(4, 0, {Text: "Support", Name: "Support"});
});
//Событие сработает при изменении элемента EditBox с именем Item 2
IR.AddListener(IR.EVENT_ITEM_CHANGE, IR.GetItem("Page 1").GetItem("Item 2"), function()
{
//Фильтруем содержимое списка
List_1.Filter = IR.GetItem("Page 1").GetItem("Item 2").Text;
})
События
EVENT_ITEM_SELECT
| Пример работы с событием 0,4 Мб |
Нажатие на элемент списка. Для использования события необходимо получить доступ к списку.
Синтаксис:
IR.AddListener(IR.EVENT_ITEM_SELECT, List_1, function(Item, Subitem){ Action });
Параметры:
EVENT_ITEM_SELECT (событие) - нажатие на элемент списка; List_1 (список) - ссылка на список; Item (число) - элемент на который нажали; Subitem (число) - субэлемент на который нажали. Action (команды) - любая функция, оператор Java Sript или iRidium Script
Пример:
// Подпишемся на событие нажатия на элемент списка и выведем в консоль отладки
// номер элемента на который нажали
IR.AddListener(IR.EVENT_ITEM_SELECT, List_1, function(Item, Subitem){
IR.Log(Item); // В консоли отобразится, например 2
});
EVENT_LIST_ITEM_CHANGE (Beta)
| Пример работы с событием 1 Мб |
Изменение значения субэлемента списка. Для использования события необходимо получить доступ к списку.
В отличие от события EVENT_ITEM_SELECT, реагирует на события Press, Release и Move, а также предоставляет доступ на чтение и запись ко всем свойствам субэлемент, что существенно расширяет возможности списков и облегчает работу.
Синтаксис:
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List_1, function(Item, Subitem, TypeEvent, object){ Action });
Параметры:
IR.EVENT_LIST_ITEM_CHANGE (событие) - Изменение значения субэлемента списка; List_1 (список) - ссылка на список; Item (число) - элемент на который нажали Subitem (число) - субэлемент на который нажали; TypeEvent (число) - тип события, возвращает числа: 11 - Press, 12 - Release, 13 - Move; object (элемент) - ссылка на субэлемент, который изменили, предоставляет доступ к свойствам для чтения и записи. Action (команды) - любая функция, оператор Java Sript или iRidium Script;
Чтение
Пример чтения
// Подпишемся на событие Изменение значения субъэлемента списка и выведем в консоль отладки
// имя субъэлемента
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List_1, function(Item, Subitem, TypeEvent, object){
IR.Log(object.Value); // В консоли отобразится, имя субъэлемента, например "Item 1"
});
Запись
Пример записи
// Подпишемся на событие Изменение значения субъэлемента списка и для субъэлемента запишем
// в свойство X, значение 32
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List_1, function(Item, Subitem, TypeEvent, object){
// Свойство X будет перезаписано и элемент переместится в соответствующее положение
object.X = 32;
});
Ссылка на объект
Пример получения ссылки на объект и использования объекта в другом событии
var MyItem = null; // объявим глобальную переменную MyItem и запишем в нее пустое значение.
// Подпишемся на событие Изменение значения субъэлемента списка и в переменную MyItem
// запишем ссылку на измененный субъэлемент
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(Item, Subitem, TypeEvent, object)
{
// записываем ссылку измененного субъэлемента в глобальную переменную MyItem
MyItem = object;
});
// Подпишемся на событие EVENT_WORK, и если переменная MyItem не пустая, увеличим
// значение Angle субъэлемента списка, ссылку на который записали
// выше в событии EVENT_LIST_ITEM_CHANGE
IR.AddListener(IR.EVENT_WORK, 0, function(){
if(MyItem)
MyItem.Angle++; // увеличим значение свойства Angle субэлемента
});
Обращение по имени
Пример обращения к субэлементам списка по имени
// Подпишемся на событие изменение значения субъэлемента списка,
// и в зависимости от имени субъэлемента списка выведем в консоль
// отладки разные сообщения
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(Item, Subitem, TypeEvent, object){
switch(object.Name){
case "Item 1":
IR.Log("Был нажат Элемент с именем Item 1");
break;
case "Item 2":
IR.Log("Был нажат Элемент с именем Item 2");
break;
}
});
Обращение по номеру элемента
Пример использования номеров элементов
// Подпишемся на событие изменение значения субъэлемента списка,
// и в зависимости от номера элемента списка выведем в консоль
// отладки разные сообщения
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(Item, Subitem, TypeEvent, object){
switch(Item & 0xFFFFFF){ // к Item применяем маску, для получения номера
case 1:
IR.Log("Был нажат элемент с порядковым номером 1");
break;
case 2:
IR.Log("Был нажат элемент с порядковым номером 2");
break;
case 3:
IR.Log("Был нажат элемент с порядковым номером 3");
break;
}
});
Обращение по номеру субъэлемента
Пример использования номеров субъэлементов
// Подпишемся на событие изменение значения субъэлемента списка,
// и в зависимости номера субъэлемента выведем в консоль
// отладки разные сообщения
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(Item, Subitem, TypeEvent, object){
switch(Subitem){
case 1:
IR.Log("Был нажат субъэлемент с порядковым номером 1");
break;
case 2:
IR.Log("Был нажат субъэлемент с порядковым номером 2");
break;
case 3:
IR.Log("Был нажат субъэлемент с порядковым номером 3");
break;
}
});
Типы событий
Пример использования типов событий
// Подпишемся на событие изменение значения субъэлемента списка,
// и в зависимости от типа события выведем в консоль
// отладки разные сообщения
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(Item, Subitem, TypeEvent, object){
switch(TypeEvent){
case 11:
IR.Log("Событие Press");
break;
case 12:
IR.Log("Событие Release");
break;
case 13:
IR.Log("Событие Move");
break;
}
});
Доступ к родителю
Свойство, для получения доступа к родителю элемента.
Дерево родословной элементов:
- Subitem - cубъэлемент списка;
- Item - элемент списка;
- List - список;
- Page или Popup - страница или попап;
- List - список;
- Item - элемент списка;
Например: Субъэлемент списка имеет родителя - элемент списка.
Пример изменения значения одного субъэлемента списка, другим субъэлементом списка с помощью свойства Parent.
// Подпишемся на событие изменение значения субэлемента списка,
// и изменим значение одного субэлемент списка при изменении другого.
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(Item, Subitem, TypeEvent, object){
// Если субэлемент имеет имя Up, увеличим значение элемента с именем Level,
// который расположен на этом же элементе списка.
if(object.Name == "Up")
object.Parent.GetItem("Level").Value++;
// в данном случае Parent - это ссылка на элемент списка
// на котором расположены все субэлементы списка
// и к ним можно обращаться по имени с помощью метода GetItem
});
Применение
Как пример применения - анимация при удалении списка
var AnimObject = null; // переменная для хранения ссылки на элемент списка
var aTime = 400; // время анимации
var timer = 0; // таймер
var animrun = false; // флаг состояния анимации true - в работе, false - не выполняется
// Подпишемся на событие изменение значения субъэлемента списка
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, List, function(ItemID, SubItemID, Type, object){
if(object.Name == "Delete" && !animrun){ // если имя субълемента Delete и анимация не выполняется
AnimObject = object.Parent; // получаем предка - элемент списка
AnimID = ItemID; // сохраняем его идентификатор, можно без маски
}
});
// Подпишемся на событие EVENT_WORK
IR.AddListener(IR.EVENT_WORK, 0, function(time){
if(AnimObject){ // если AnimObject не пустая и в ней есть ссылка на субъэлемент
animrun = true; // устанавливаем состояние анимации в true
if(timer <= aTime){ // если timer не превысил время анимации
AnimObject.GetState(0).Opacity = IR.Tween("TWEEN_LINEAR", timer, 255, -255, aTime);
AnimObject.ScaleX = IR.Tween("TWEEN_LINEAR", timer, 1, -0.5, aTime);
AnimObject.ScaleY = IR.Tween("TWEEN_LINEAR", timer, 1, -0.5, aTime);
timer += time; // наращиваем таймер
}
else{
// как только время анимации вышло
List.DeleteItem(AnimID); // удаляем элемент списка
AnimObject = null; // очищаем переменную AnimObject
animrun = false; // устанавливаем состояние анимации в не выполняется
timer = 0; // обнуляем таймер
}
}
});
Применение
| Пример применения списка 0,4 Мб |