- Справочник
- Списки
API iRidium. Списки (List)
методы, события и свойства для работы с динамическими списками, которые можно заполнять в процессе работы приложения
События
Событие - процесс, проброшенный в скрипты и имеющий идентификатор для отслеживания.
Слушатель - это функция, которая выполняется в случае срабатывания указанного ей события
Добавьте слушатель с помощью метода IR.AddListener
IR.AddListener(event, input, action);
- event - идентификатор события, за которым следит слушатель
- input - входной параметр, необходимый для создания слушателя. Если параметра нет, укажите 0
- action - не именованная функция или ссылка на объявленную функцию, внутри которой выполняются действия
- pointer - указатель на контекст вызова слушателя (не обязательный). Обратиться к контексту можно с помощью оператора this. Контекст может меняться во время работы программы
IR.EVENT_ITEM_SELECT
идентификатор события, которое срабатывает при нажатии на пункт списка. Получите ссылку на объект List с помощью метода IR.GetItem().
Синтаксис
IR.AddListener(IR.EVENT_ITEM_SELECT, list, function, [pointer]);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("List 1") | type: object ссылка на элемент - список |
| function | function(itemID, subItemID, index) {} | type: function не именованная функция или обращение к функции |
| pointer | - | type: object указатель на объект, который обслуживает функцию (опционально). |
| на выходе | ||
|---|---|---|
| itemID | 2 | type: number пункт списка, на который нажали, начиная с 0 |
| subItemID | 1 | type: number подпункт списка, на который нажали * 0 - элемент списка (попап); * 1...n - под элемент на попапе, по порядку отображения в редакторе. |
| index | 1 | type: number индекс элемента в списке, начиная с 0. * В случае динамического удаления элементов списка, itemID и index не совпадают. |
Пример
IR.AddListener(IR.EVENT_ITEM_SELECT, IR.GetItem("Page 1").GetItem("List 1"), function(itemID, subItemID, index) {
IR.Log("pressed "+itemID+" / "+subItemID);
});
IR.EVENT_LIST_ITEM_CHANGE
идентификатор события, которое срабатывает при нажатии, отпускании, сдвиге списка (Press, Release и Move). Событие предоставляет доступ на чтение и запись ко всем свойствам подэлемента, что существенно расширяет возможности списков. Получите ссылку на объект List с помощью метода IR.GetItem().
Синтаксис
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, list, function, [pointer]);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("List 1") | type: object ссылка на элемент - список |
| function | function(itemID, subItemID, event_type, object, index) {} | type: function не именованная функция или обращение к функции |
| pointer | - | type: object указатель на объект, который обслуживает функцию (опционально) |
| на выходе | ||
|---|---|---|
| itemID | 2 | type: number пункт списка, на который нажали, начиная с 0. |
| subItemID | 1 | type: number подпункт списка, на который нажали * 0 - элемент списка (попап); * 1...n - под элемент на попапе, по порядку отображения в редакторе. |
| event_type | IR.EVENT_LIST_ITEM_PRESS | type: number тип события, которое произошло: * IR.EVENT_LIST_ITEM_PRESS - нажатие на элемент, * IR.EVENT_LIST_ITEM_RELEASE - отпускание элемента, * IR.EVENT_LIST_ITEM_MOVE - перемещение элемента, * IR.EVENT_LIST_ITEM_HOLD - удержание элемента, * IR.EVENT_LIST_ITEM_END_HOLD - отпускание элемента после удержания. |
| object | [Object DialogItemPrototype] | type: object ссылка на подпункт списка, который изменился, предоставляет доступ к его свойствам для чтения и записи |
| index | 1 | type: number индекс элемента в списке. * В случае динамического удаления элементов списка, itemID и index не совпадают. |
Пример
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, list, function(itemID, subItemID, event_type, object, index) {
IR.Log("itemID " + itemID + ", subItemID " + subItemID + ", index " + index + ", object " + object.Name);
switch(event_type)
{
case IR.EVENT_LIST_ITEM_PRESS:
{
IR.Log("Pressed");
break;
}
case IR.EVENT_LIST_ITEM_RELEASE:
{
IR.Log("Relesed");
break;
}
case IR.EVENT_LIST_ITEM_MOVE:
{
IR.Log("Move");
break;
}
case IR.EVENT_LIST_ITEM_HOLD:
{
IR.Log("Hold");
break;
}
case IR.EVENT_LIST_ITEM_END_HOLD:
{
IR.Log("End Hold");
break;
}
}
});
- список возможных свойств подпункта (object) см. в API iRidium. Страницы и элементы
- дерево родословной элементов:
- Page / Popup - страница или попап
- List - список
- ItemID - пункт списка
- SubItemID - подпункт списка
- Page / Popup - страница или попап
IR.EVENT_LIST_SCROLL
идентификатор события, которое срабатывает при нажатии, отпускании, сдвиге списка (Press, Release и Move). Событие предоставляет информацию о текущем положении списка, направлении листания и факте достижения крайнего положения (начала или конца) списка.
Если в качестве списка используется Static List, то метод работает только с типом Center.
Синтаксис
IR.AddListener(IR.EVENT_LIST_SCROLL, list, function, [pointer]);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1"). GetItem("List 1") | type: object ссылка на элемент - список |
| function | function(in_position, in_direction, in_edge) {} | type: function не именованная функция или обращение к функции |
| pointer | - | type: object указатель на объект, который обслуживает функцию (опционально) |
| на выходе | ||
|---|---|---|
| in_position | 2 | type: number крайний верхний (для вертикального списка) или крайний левый (для горизонтального списка) элемент, который в данный момент отображается (начиная с 0) |
| in_direction | 3 | type: number направление листания: 0 - вправо, 1 - влево, 2 - вниз, 3 - вверх |
| in_edge | 1 | type: number признак достижения начала или конца списка: 1 - список пролистан до края, 0 - список не пролистан до края |
Пример
var list = IR.GetItem("Page 1").GetItem("List 1");
IR.AddListener(IR.EVENT_LIST_SCROLL, list, function(in_position, in_direction, in_edge) {
IR.Log("POSITION " + in_position);
IR.Log("DIRECTION " + in_direction);
IR.Log("EDGE " + in_edge + "\n");
});
IR.ITEM_LISTBOX (List)
Методы, используемые при работе с динамическими списками: графическими элементами типа List.
IR.CreateItem()
создать графический элемент List на текущей странице проекта. Страница может быть определена с помощью метода IR.CurrentPage. Чтобы создать элемент на произвольной странице, нужно применить метод CreateItem() к ссылке на объект Page или Popup, полученной с помощью метода IR.GetItem().
Синтаксис
IR.CreateItem(IR.ITEM_LISTBOX, name, X, Y, width, height);
| на входе | значение | описание |
|---|---|---|
| name | "Button 1" | type: String название элемента, уникальное для страницы |
| X | 30 | type: Number координата по оси X |
| Y | 40 | type: Number координата по оси Y |
| width | 200 | type: Number ширина элемента |
| height | 500 | type: Number высота элемента |
| на выходе | ||
|---|---|---|
| Object | [Object DialogItemPrototype] | type: Object экземпляр графического объекта |
Пример
IR.AddListener(IR.EVENT_START,0, function()
{
var src = IR.CreateItem(IR.ITEM_LISTBOX,"List 1",30,40,200,500);
IR.Log(src); // [Object DialogItemPrototype]
});
- Чтобы создать диалоговый элемент на конкретной странице, примените .CreateItem() к ссылке на страницу или попап:
var list_1 = IR.GetItem("Page 1").CreateItem(IR.ITEM_LISTBOX,"List 1",30,40,200,500);
IR.Log(list_1) // [Object DialogItemPrototype] // create list and get the link in one action
- В конструкторе приведены только базовые свойства элемента, без которых элемент вообще нельзя создать. Все элементы имеют также общий набор дополнительных свойств и набор свойств, характерных для типа элемента. См. в подразделе Свойства.
.CreateItem()
создать новый пункт элемента List. Чтобы создать пункт списка, нужно получить ссылку на объект List с помощью метода IR.GetItem().
Синтаксис
list.CreateItem(item, subitem, {property: value, ...});
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на список |
| item | 0 | type: Number номер элемента (пункта) списка, начиная с 0 |
| subitem | 1 | type: Number номер суб-элемента (элемента в пункте) списка; 0 - сам пункт, 1...n - суб-элементы по порядку создания в редакторе |
| property | Text | type: String свойство суб-элемента, список свойств идентичен свойствам графического элемента |
| value | 'text' | type: String значение, которое нужно записать в указанное свойство, Number |
| на выходе | ||
|---|---|---|
| Object | [Object DialogItemPrototype] | type: Object экземпляр графического объекта |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var List_1 = IR.GetItem("Page 1").GetItem("List 1");
List_1.CreateItem(0, 1, {Text: "Hello"});
});
- Метод CreateItem() используется не только для создания, но и для редактирования списков. Если элемент списка уже существует, он не будет удален - заменятся только свойства, указанные при вызове метода.
- Метод CreateItem() не работает с новыми методами работы с листами.
.DeleteItem()
удалить пункт элемента List. Для этого нужно получить ссылку на объект List с помощью метода IR.GetItem().
Синтаксис
list.DeleteItem(item);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на список |
| item | 0 | type: Number номер элемента (пункта) списка, начиная с 0 |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var List = IR.GetItem("Page 1").GetItem("List 1");
List.DeleteItem(0); // delete first point of list
});
.Clear()
удалить все пункты элемента List. Для этого нужно получить ссылку на объект List с помощью метода IR.GetItem().
Синтаксис
list.Clear();
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на список |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var List = IR.GetItem("Page 1").GetItem("List 1");
List.Clear(); // clear list
});
.SetPosition()
пролистать список до указанной позиции. Для этого нужно получить ссылку на объект List с помощью метода IR.GetItem().
Синтаксис
list.SetPosition(item);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на список |
| item | 0 | type: Number номер элемента (пункта) списка, начиная с 0 |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var List = IR.GetItem("Page 1").GetItem("List 1");
List.SetPosition(12); // go to point
});
для перелистывания списка к указанному пункту:
- пункт должен существовать
- в момент выполнения команды, список должен быть виден, это значит, что страница или попап содержащая список, должна быть открыта
- после создания нового элемента списка, должно пройти не менее 100 мс, команда перелистывания идущая сразу же после команды создания нового элемента списка - выполнена не будет.
.SetStrictPositionByIndex()
пролистать список до указанной позиции. Для этого нужно получить ссылку на объект List с помощью метода IR.GetItem().
- Метод .SetStrictPositionByIndex() - более точная реализация метода .SetPosition(), но более медленная. Этот метод лучше работает в случае неодинаковых размеров элементов в списке, он учитывает индивидуальный размер каждого элемента. Если элементы списка одинаковы по размерам, то рекомендуется использовать .SetPosition().
Синтаксис
list.SetStrictPositionByIndex(item);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на список |
| item | 0 | type: Number номер элемента (пункта) списка, начиная с 0 |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var List = IR.GetItem("Page 1").GetItem("List 1");
List.SetStrictPositionByIndex(12); // go to point
});
для перелистывания списка к указанному пункту:
- пункт должен существовать
- в момент выполнения команды, список должен быть виден, это значит, что страница или попап содержащая список, должна быть открыта
- после создания нового элемента списка, должно пройти не менее 100 мс, команда перелистывания идущая сразу же после команды создания нового элемента списка - выполнена не будет.
Свойства
Свойства списков - графических элементов типа List:
IR.GetItem(page/popup).GetItem(list).[property](#state)
| Свойство | Значение" | Описание |
|---|---|---|
| Template | "Popup 1" | type: string позволяет установить или запросить шаблон для пунктов списка, которым является один из попапов проекта |
| Direction | 0 | type: number позволяет установить или запросить направление прокрутки списка: * 0 - вертикальный список * 1 - горизонтальный список |
| ItemsCount | 24 | type: number позволяет запросить количество пунктов списка |
| Filter | "A" | type: string позволяет отфильтровать пункты списка по их имени (части имени) |
| ScrollEnabled | true | type: boolean позволяет отключить возможность перелистывания списка вручную, из интерфейса. При этом метод .SetPosition продолжит работать. |
var list = IR.GetItem("Page 1").GetItem("List 1");
//** Template **//
IR.Log(list.Template); // "Popup 1"
list.Template = "Popup 2"; // change template if exist
//** Direction **//
IR.Log(list.Direction); // 1
list.Direction = 0; // change direction
//** ItemsCount **//
IR.Log(list.ItemsCount); // 24
//** Filter **//
list.CreateItem(0, 0, {Text: "Curriculum", Name:"Curriculum"});
list.CreateItem(1, 0, {Text: "Privacy", Name: "Privacy"});
list.Filter = "C"; // "Privacy" will be filtered out, "Curriculum" showed
IR.Log(list.Filter); // "C"
//** ScrollEnabled **//
list.ScrollEnabled = true; // list can be flipped manually
list.ScrollEnabled = false; // list cannot be flipped manually
IR.ITEM_GOOD_LIST
Методы, используемые при работе с динамическими списками: графическими элементами типа Good List. Good List - новая версия элемента Listbox с лучшими возможностями для отображения большого количества пунктов.
IR.CreateItem()
создать графический элемент Good List на текущей странице проекта. Страница может быть определена с помощью метода IR.CurrentPage. Чтобы создать элемент на произвольной странице, нужно применить метод CreateItem() к ссылке на объект Page или Popup, полученной с помощью метода IR.GetItem().
Синтаксис
IR.CreateItem(IR.ITEM_GOOD_LIST, name, X, Y, width, height, infinity);
| на входе | значение | описание |
|---|---|---|
| name | "GList 1" | type: String название элемента, уникальное для страницы |
| X | 30 | type: Number координата по оси X |
| Y | 40 | type: Number координата по оси Y |
| width | 200 | type: Number ширина элемента |
| height | 500 | type: Number высота элемента |
| infinity | false | type: Boolean является ли список замкнутым. Если значение true, то после последнего элемента списка, будут отображаться начальные элементы списка |
| на выходе | ||
|---|---|---|
| Object | [Object DialogItemPrototype] | type: Object экземпляр графического объекта |
Пример
IR.AddListener(IR.EVENT_START,0, function()
{
var GList = IR.CreateItem(IR.ITEM_GOOD_LIST, "GList 1", 20, 20, 250, 600, false);
IR.Log(GList) // [Object DialogItemPrototype]
});
- Чтобы создать диалоговый элемент на конкретной странице, примените .CreateItem() к ссылке на страницу или попап:
var list_1 = IR.GetItem("Page 1").CreateItem(IR.ITEM_GOOD_LIST, "GList 1", 20, 20, 250, 600);
IR.Log(list_1) // [Object DialogItemPrototype] // create list and get the link in one action
- В конструкторе приведены только базовые свойства элемента, без которых элемент вообще нельзя создать. Все элементы имеют также общий набор дополнительных свойств и набор свойств, характерных для типа элемента. См. в подразделе Свойства
.Adapter
Объект, который позволяет работать с отдельными пунктами списка - заполнять их, следить за активностью, изменять свойства и др.
Синтаксис
GList.Adapter = {}
| на входе | значение | описание |
|---|---|---|
| - |
| на выходе | ||
|---|---|---|
| - |
Пример
GList.Adapter = {
total : 8, // total number of states after the list creation
GetCount : function () {return this.total}, //makes "total" property available for external functions
GetItem : function (in_nPos) {}, // function will be called separately for each created item of list. Here you can select template of item, change their properties. in_nPos - index of list item
SetSelected : function (in_oItem, in_bSelected) {} // function will be called separately for each created item of list. It returns the link to list item as an object (popup) and the state of activity of this item - is it selected in list or not
}
Пример реализации, список методов и свойств:
function good_list (list_item, template)
{
var l_list = list_item;
var l_oTemp = IR.GetItem(template);
l_list.GetState(0).Color = 0xFFFFFFFF;
l_list.SelectMode = 1; // 0 - cannot select, 1 - one selected item, 2 - any number of items can be marked as selected
l_list.Direction = 1; // 0 - horisontal from left to right, 1 - vertical from up to down
l_list.Adapter = {
//number of list items at start
total: 8,
//function to count the number of list items
GetCount : function ()
{
return this.total;
//use as: IR.Log("Total number of items in list = " + l_oGList.Adapter.GetCount())
},
//function to work with list items
GetItem: function(in_nPos)
{
var l_oItem = l_oTemp.Clone("" + in_nPos); // use popup as template of List item
l_oItem.GetItem("Item_name").Text = in_nPos; // display the popup position at each list item
// when press to popup in list
IR.AddListener(IR.EVENT_ITEM_RELEASE, l_oItem, function ()
{
l_list.SetSelected(l_oItem); // mark item as selected
});
// when press to some item of popup in list
IR.AddListener(IR.EVENT_ITEM_RELEASE, l_oItem.GetItem("Add"), function ()
{
l_list.Adapter.total += 1; //add one more list item
//l_list.Adapter.total -= 1; //delete the last item of list
l_list.Position = l_list.Adapter.total+1; // go to the last position of list
l_list.Update(); //update list when change the number of items in list from inside or outside
});
return l_oItem; //get object item
},
//function to work with selected items
SetSelected : function (in_oItem, in_bSelected)
{
if (in_bSelected == true)
{
//IR.Log("selected > "+in_oItem.Name);
in_oItem.GetItem("Selector").Value = 1;
} else in_oItem.GetItem("Selector").Value = 0;
}
};
return l_list;
}
var l_oGList1 = new good_list(IR.GetPage("Page 1").CreateItem(IR.ITEM_GOOD_LIST, "ConList", 16, 16, 320, 600), "Popup 1");
var l_oGList2 = new good_list(IR.GetPage("Page 1").CreateItem(IR.ITEM_GOOD_LIST, "ConList_2", 352, 16, 320, 600), "Popup 1");
/* * * * * List Of Methods
*
* l_oGList1.SetSelected(l_oItem) // mark list position as selected
* l_oGList1.Update() // update list when change the number of items
* IR.DeleteItem(l_oGList1) // remove List object
*
* l_oGList1.Adapter.GetCount() // get total number of list positions
* l_oGList1.Adapter.GetItem(4).GetItem("Item_name").Text // get list position by index
* l_oGList1.Adapter.GetItem("4").GetItem("Item_name").Text // get list position by name
* l_oGList1.Adapter.total // get or change total number of list positions
*
* l_oGList1.SelectMode // 0 - cannot select, 1- one selected item, 2 - any number of items can be marked as selected
* l_oGList1.GetState(0).Color // color of List substate
* l_oGList1.Direction // 0 - horisontal from left to right, 1 - vertical from up to down
* l_oGList1.Position // set or get the current list position
*
*****/
.SetSelected()
пометить пункт списка, как выбранный. Возможность пометить пункт списка зависит от его свойства .SelectMode
Синтаксис
list.SetSelected(item-object);
| на входе | значение | описание |
|---|---|---|
| list | IR.GetItem("Page 1").GetItem("GList 1") | type: Object ссылка на список |
| item-object | [Object DialogItemPrototype] | type: object пункта списка |
| на выходе | ||
|---|---|---|
| - |
Пример
var l_oTemp = IR.GetItem("Popup 1");
l_list.Adapter = {
GetItem: function(in_nPos)
{
var l_oItem = l_oTemp.Clone("" + in_nPos); // use popup as template of List item
IR.AddListener(IR.EVENT_ITEM_RELEASE, l_oItem, function ()
{
l_list.SetSelected(l_oItem); // mark item as selected on Release
});
}
}
.Update()
обновить список. Используется после изменения количества пунктов списка
Синтаксис
list.Update();
| на входе | значение | описание |
|---|---|---|
| - |
| на выходе | ||
|---|---|---|
| - |
Пример
var l_oTemp = IR.GetItem("Popup 1");
l_list.Adapter = {
GetItem: function(in_nPos)
{
var l_oItem = l_oTemp.Clone("" + in_nPos); // use popup as template of List item
IR.AddListener(IR.EVENT_ITEM_RELEASE, l_oItem, function ()
{
l_list.Adapter.total += 1;
l_list.Update(); // update list if number of items has been changed
});
}
}
.GetSelected()
Получить список отмеченных элементов списка
Синтаксис
list.GetSelected();
| на входе | значение | описание |
|---|---|---|
| - |
| на выходе | ||
|---|---|---|
| Массив выделенных элементов |
Пример
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function()
{
var SelectedBuffer = l_oGList1.GetSelected();
IR.Log("SelectedBuffer = " + SelectedBuffer );
});
.ClearSelected()
Убрать выделение со всех элементов
Синтаксис
list.ClearSelected();
| на входе | значение | описание |
|---|---|---|
| - |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 2"), function()
{
l_oGList1.ClearSelected();
});
Свойства
Свойства списков - графических элементов типа Good List:
IR.GetItem(page/popup).GetItem(good_list).property
| Свойство | Значение | Описание |
|---|---|---|
| .SelectMode | 1 | type: number управление возможностью "выбрать" пункты списка: * 0 - нельзя пометить элементы списка как выбранные * 1 - можно пометить 1 элемент как выбранный * 2 - можно пометить несколько элементов как выбранные |
| .Direction | 0 | type: number позволяет задать направление прокрутки списка: * 0 - горизонтальный список (слева направо) * 1 - вертикальный список (сверху вниз) |
| .Position | 10 | type: number позволяет получить или изменить позицию списка |
| .GetState(0).Color | 0xFFFFFFFF | type: RGBA позволяет изменить цвет подложки списка |
| .Adapter.total | 24 | type: number позволяет запросить количество пунктов списка |
| .Adapter.Item.Subitem.Property | - | позволяет получить доступ к свойствам пунктов и подпунктов списка при обращении к пунктам по имени или идентификатору (с нуля). К подпунктам - по имени. Набор свойств см. в GUI API: Свойства графических элементов и их состояний |
| .infinity | false | type: Boolean позволяет закольцевать список (true - закольцован, false - не закольцован) |
| .StopByTap | 1 | type: number позволяет останавливать движение списка при касании: * 0 - не останавливать список при касании * 1 - останавливать список при касании |
Static List
Static List - графический элемент, внутри которого можно перелистывать попапы. Используется для создания меню, управляемого жестами.
Static List нельзя создать из скрипта, но можно добавлять и убирать из него попапы, перелистывать список до нужной позиции. Функция определения текущей позиции списка на данный момент отсутствует.
Методы объекта Static List:
// get a link to the Static List as an object
var st_list = IR.GetItem("Page 1").GetItem("Static List Item 1")
// methods
st_list.AddPopup("Popup 1") // add a popup to the end of Static List (by name)
st_list.RemovePopup("Popup 1") // remove a popup from the Static List (by name)
st_list.SetPosition(0) // set the position of the Static List by the index from 0
st_list.Clear() // clear the Static List (romove all popups)
.AddPopup()
добавить попап в конце списка Static List. Для этого нужно получить ссылку на объект Static List с помощью метода IR.GetItem().
Синтаксис
st_list.AddPopup(popup_name);
| на входе | значение | описание |
|---|---|---|
| st_list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на Static List |
| popup_name | "Popup 1" | type: string имя попапа, который нужно добавить в конец списка |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var st_list = IR.GetItem("Page 1").GetItem("Static List 1");
st_list.AddPopup("Popup 1");
});
.RemovePopup()
убрать попап из списка Static List, по имени. Обращение по индексу не поддерживается. Требуется получить ссылку на объект Static List с помощью метода IR.GetItem().
Синтаксис
st_list.RemovePopup(popup_name);
| на входе | значение | описание |
|---|---|---|
| st_list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на Static List |
| popup_name | "Popup 1" | type: string имя попапа, который нужно убрать из списка |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var st_list = IR.GetItem("Page 1").GetItem("Static List 1");
st_list.RemovePopup("Popup 1");
});
.SetPosition()
переместить список Static List на указанную (индексом) позицию. Индекс позиции отсчитывается с нуля.
Синтаксис
st_list.SetPosition(position);
| на входе | значение | описание |
|---|---|---|
| st_list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на Static List |
| position | 0 | type: number позиция, на которую требуется переместить список |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var st_list = IR.GetItem("Page 1").GetItem("Static List 1");
st_list.SetPosition(1);
});
.Clear()
удалить все пункты из списка Static List
Синтаксис
st_list.Clear();
| на входе | значение | описание |
|---|---|---|
| st_list | IR.GetItem("Page 1").GetItem("Item 1") | type: Object ссылка на Static List |
| на выходе | ||
|---|---|---|
| - |
Пример
IR.AddListener(IR.EVENT_START, 0, function()
{
var st_list = IR.GetItem("Page 1").GetItem("Static List 1");
st_list.Clear();
});
Свойства
Свойства списков - графических элементов типа Static List:
IR.GetItem(page/popup).GetItem(static_list).property
| Свойство | Значение | Описание |
|---|---|---|
| .Hit | 1 | type: number настройка области и характера нажатия: * 0 – Active Touch * 1 – элемент обрабатывает нажатие на любую область, включая прозрачную * 2 – «прозрачный» для попадания элемент, нажатия на который не обрабатываются вообще. Попадание будет обработано объектом, находящимся слоем ниже. Элемент только отображает значения * 3 - обрабатывается нажатие на любую непрозрачную область элемента. Нажатие на прозрачную область не обрабатывается (будет обработано объектом, находящимся слоем ниже) |
| .ScrollEnabled | true | type: boolean позволяет отключить возможность перелистывания списка вручную, из интерфейса |
| .BottomIndent | 10 | type: number Настройка отступа между последним попапом и нижним краем Static List |
| .Resistance | 100 | type: number Настройка сопротивления пролистывания списка попапов на Static List |
IR.ITEM_PICKER
Методы, используемые при работе с барабаном - графическим элементом типа Picker.
IR.CreateItem()
создать графический элемент Picker на текущей странице или попапе проекта. Чтобы создать элемент на произвольной странице, нужно применить метод CreateItem() к ссылке на объект Page или Popup, полученной с помощью метода IR.GetItem().
Синтаксис
IR.CreateItem(IR.ITEM_PICKER, name, {parameter});
| на входе | значение | описание |
|---|---|---|
| name | "picker" | type: String название элемента, уникальное для страницы |
| X | 30 | type: Number координата по оси X |
| Y | 40 | type: Number координата по оси Y |
| Min | 0 | type: Number минимальное значение барабана |
| Max | 100 | type: Number максимальное значение барабана |
| Template | IR.GetPopup("Template_Picker") | type: Popup шаблон строки элемента Picker |
| Items | ["January", "February"] | type: Array массив значений барабана (используется вместо min/max) |
| Step | 10 | type: Number шаг барабана (кратность значений) |
| Position | 3 | type: Number значение по умолчанию (начиная с 0) |
| Direction | 0/1 | type: Number Направление движения барабана, 0 - горизональное, 1 - вертикальное. |
| VisibleCount | 3, 5, 7, 9 ... | type: Number Количество видимых элементов отображаемых на барабане. Число должно быть положительным и нечетным. Число не должно превышать количество элементов барабана (по умолчанию значение 3) . |
| на выходе | ||
|---|---|---|
| Object | [Object DialogItemPrototype] | type: Object экземпляр графического объекта |
Пример
//create picker with min/max values
var picker = IR.GetItem("Page 1").CreateItem(IR.ITEM_PICKER, "picker", {
X: 55,
Y: 6,
Min: 1, // min value
Max: 31, // max value
Template: IR.GetPopup("Template Picker")
});
//create picker with array
var picker = IR.GetItem("Page 1").CreateItem(IR.ITEM_PICKER, "picker", {
X: 35,
Y: 0,
Items: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], //array
Template: IR.GetPopup("Template Picker")
});
Свойства
Свойства барабана - графического элемента типа Picker:
IR.GetItem(page/popup).GetItem(picker).property
| Свойство | Значение | Описание |
|---|---|---|
| ItemsCount | 15 | type: number позволяет запросить количество элементов в барабане |
| SelectedIndex | 2 | type: number позволяет запросить индекс текущей позиции барабана |
| Position | 1 | type: number текущая позиция 1 элемента барабана после прокрутки |
var picker = IR.GetItem("Page 1").getItem("picker");
//* * ItemsCount **//
IR.Log(picker.ItemsCount); // 15
//* * SelectedIndex **//
IR.Log(picker.SelectedIndex); //2
Получение значений с барабана
Значение можно получить, обратившись к свойству Value элемента Picker.
IR.AddListener(IR.EVENT_ITEM_RELEASE, IR.GetItem(“Page 1”).GetItem("Done_Button"), function() {
var Day = parseInt(DayPicker.Value); // Day (number)
var Month = MonthPicker.Value; // Month (string)
var Year = parseInt(YearPicker.Value); // Year (number)
IR.Log("Date: " + Day + ", Month: " + Month + ", Year: " + Year); // Logging
});
Пример:
IR.EVENT_PICKER_SCROLL
Данный метод используется для определения прокрутки барабана. После прокрути нужного барабана, можно выполнить действия по отрисовке другого барабана, меняя количество дней в зависимости от выбранного месяца.
Синтаксис
IR.AddListener(IR.EVENT_PICKER_SCROLL, picker, function (in_position / Position), [pointer]);
| на входе | значение | описание |
|---|---|---|
| picker | IR.GetItem("Popup 1").GetItem("midPicker"); | type: object ссылка на элемент |
| function | function(in_position){} | type: function не именованная функция или обращение к функции |
| pointer | - | type: object указатель на объект, который обслуживает функцию (опционально) |
| на выходе | ||
|---|---|---|
| in_position | 4 | type: number текущая позиция 2 элемента барабана после прокрутки |
| Position | 3 | type: number текущая позиция 1 элемента барабана после прокрутки |
Пример
IR.AddListener(IR.EVENT_PICKER_SCROLL, MidPicker, function(in_position){
if (in_position == 3 || in_position == 5 || in_position == 8 || in_position == 10) { //левый барабан настроить на диапазон 1...30
var item_test = IR.GetPopup("Remote").GetItem("leftPicker");
IR.DeleteItem(item_test);
in_oRemotePopup.CreateItem(IR.ITEM_PICKER, "leftPicker", {
X: _Left.X - 55,
Y: _Left.Y + 6,
Min: 1, // Интервал
Max: 30, // Интервал
VisibleCount: 3, //3,5,7,...
Template: IR.GetPopup("Template Picker")
});
}
else if(in_position == 0 || in_position == 2 || in_position == 4 || in_position == 6 || in_position == 7 || in_position == 9 || in_position == 11) { //левый барабан настроить на диапазон 1...31
var item_test = IR.GetPopup("Remote").GetItem("leftPicker");
IR.DeleteItem(item_test);
in_oRemotePopup.CreateItem(IR.ITEM_PICKER, "leftPicker", {
X: _Left.X - 55,
Y: _Left.Y + 6,
Min: 1, // Интервал
Max: 31, // Интервал
VisibleCount: 3, //3,5,7,...
Template: IR.GetPopup("Template Picker")
});
}
else if(in_position == 1){ //левый барабан настроить на диапазон 1...28
var item_test = IR.GetPopup("Remote").GetItem("leftPicker");
IR.DeleteItem(item_test);
in_oRemotePopup.CreateItem(IR.ITEM_PICKER, "leftPicker", {
X: _Left.X - 55,
Y: _Left.Y + 6,
Min: 1, // Интервал
Max: 28, // Интервал
VisibleCount: 3, //3,5,7,...
Template: IR.GetPopup("Template Picker")
});
}
});
}
Пример с применением перерисовки барабана с датой в зависимости от выбранного месяца :