Перейти к основному содержимому

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]);

на входезначениеописание
listIR.GetItem("Page 1").GetItem("List 1")type: object
ссылка на элемент - список
functionfunction(itemID, subItemID, index) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально).
на выходе
itemID2type: number
пункт списка, на который нажали, начиная с 0
subItemID1type: number
подпункт списка, на который нажали
* 0 - элемент списка (попап);
* 1...n - под элемент на попапе, по порядку отображения в редакторе.
index1type: 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]);

на входезначениеописание
listIR.GetItem("Page 1").GetItem("List 1")type: object
ссылка на элемент - список
functionfunction(itemID, subItemID, event_type, object, index) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
itemID2type: number
пункт списка, на который нажали, начиная с 0.
subItemID1type: number
подпункт списка, на который нажали
* 0 - элемент списка (попап);
* 1...n - под элемент на попапе, по порядку отображения в редакторе.
event_typeIR.EVENT_LIST_ITEM_PRESStype: 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
ссылка на подпункт списка, который изменился, предоставляет доступ к его свойствам для чтения и записи
index1type: 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 - подпункт списка

IR.EVENT_LIST_SCROLL

идентификатор события, которое срабатывает при нажатии, отпускании, сдвиге списка (Press, Release и Move). Событие предоставляет информацию о текущем положении списка, направлении листания и факте достижения крайнего положения (начала или конца) списка.

Важно

Если в качестве списка используется Static List, то метод работает только с типом Center.

Синтаксис

IR.AddListener(IR.EVENT_LIST_SCROLL, list, function, [pointer]);

на входезначениеописание
listIR.GetItem("Page 1").
GetItem("List 1")
type: object
ссылка на элемент - список
functionfunction(in_position, in_direction, in_edge) {}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
in_position2type: number
крайний верхний (для вертикального списка) или крайний левый (для горизонтального списка) элемент, который в данный момент отображается (начиная с 0)
in_direction3type: number
направление листания:
0 - вправо,
1 - влево,
2 - вниз,
3 - вверх
in_edge1type: 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
название элемента, уникальное для страницы
X30type: Number
координата по оси X
Y40type: Number
координата по оси Y
width200type: Number
ширина элемента
height500type: 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, ...});

на входезначениеописание
listIR.GetItem("Page 1").GetItem("Item 1")type: Object
ссылка на список
item0type: Number
номер элемента (пункта) списка, начиная с 0
subitem1type: Number
номер суб-элемента (элемента в пункте) списка; 0 - сам пункт, 1...n - суб-элементы по порядку создания в редакторе
propertyTexttype: 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);

на входезначениеописание
listIR.GetItem("Page 1").GetItem("Item 1")type: Object
ссылка на список
item0type: 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();

на входезначениеописание
listIR.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);

на входезначениеописание
listIR.GetItem("Page 1").GetItem("Item 1")type: Object
ссылка на список
item0type: 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);

на входезначениеописание
listIR.GetItem("Page 1").GetItem("Item 1")type: Object
ссылка на список
item0type: 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
позволяет установить или запросить шаблон для пунктов списка, которым является один из попапов проекта
Direction0type: number
позволяет установить или запросить направление прокрутки списка:
* 0 - вертикальный список
* 1 - горизонтальный список
ItemsCount24type: number
позволяет запросить количество пунктов списка
Filter"A"type: string
позволяет отфильтровать пункты списка по их имени (части имени)
ScrollEnabledtruetype: 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
название элемента, уникальное для страницы
X30type: Number
координата по оси X
Y40type: Number
координата по оси Y
width200type: Number
ширина элемента
height500type: Number
высота элемента
infinityfalsetype: 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
*
*****/

SAMPLE

.SetSelected()

пометить пункт списка, как выбранный. Возможность пометить пункт списка зависит от его свойства .SelectMode

Синтаксис

list.SetSelected(item-object);

на входезначениеописание
listIR.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

СвойствоЗначениеОписание
.SelectMode1type: number
управление возможностью "выбрать" пункты списка:
* 0 - нельзя пометить элементы списка как выбранные
* 1 - можно пометить 1 элемент как выбранный
* 2 - можно пометить несколько элементов как выбранные
.Direction0type: number
позволяет задать направление прокрутки списка:
* 0 - горизонтальный список (слева направо)
* 1 - вертикальный список (сверху вниз)
.Position10type: number
позволяет получить или изменить позицию списка
.GetState(0).Color0xFFFFFFFFtype: RGBA
позволяет изменить цвет подложки списка
.Adapter.total24type: number
позволяет запросить количество пунктов списка
.Adapter.Item.Subitem.Property-позволяет получить доступ к свойствам пунктов и подпунктов списка при обращении к пунктам по имени или идентификатору (с нуля). К подпунктам - по имени. Набор свойств см. в GUI API: Свойства графических элементов и их состояний
.infinityfalsetype: Boolean
позволяет закольцевать список
(true - закольцован, false - не закольцован)
.StopByTap1type: 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_listIR.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_listIR.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_listIR.GetItem("Page 1").GetItem("Item 1")type: Object
ссылка на Static List
position0type: 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_listIR.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

СвойствоЗначениеОписание
.Hit1type: number
настройка области и характера нажатия:
* 0 – Active Touch
* 1 – элемент обрабатывает нажатие на любую область, включая прозрачную
* 2 – «прозрачный» для попадания элемент, нажатия на который не обрабатываются вообще. Попадание будет обработано объектом, находящимся слоем ниже. Элемент только отображает значения
* 3 - обрабатывается нажатие на любую непрозрачную область элемента. Нажатие на прозрачную область не обрабатывается (будет обработано объектом, находящимся слоем ниже)
.ScrollEnabledtruetype: boolean
позволяет отключить возможность перелистывания списка вручную, из интерфейса
.BottomIndent10type: number
Настройка отступа между последним попапом и нижним краем Static List
.Resistance100type: 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
название элемента, уникальное для страницы
X30type: Number
координата по оси X
Y40type: Number
координата по оси Y
Min0type: Number
минимальное значение барабана
Max100type: Number
максимальное значение барабана
TemplateIR.GetPopup("Template_Picker")type: Popup
шаблон строки элемента Picker
Items["January", "February"]type: Array
массив значений барабана (используется вместо min/max)
Step10type: Number
шаг барабана (кратность значений)
Position3type: Number
значение по умолчанию (начиная с 0)
Direction0/1type: Number
Направление движения барабана, 0 - горизональное, 1 - вертикальное.
VisibleCount3, 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

СвойствоЗначениеОписание
ItemsCount15type: number
позволяет запросить количество элементов в барабане
SelectedIndex2type: number
позволяет запросить индекс текущей позиции барабана
Position1type: 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]);

на входезначениеописание
pickerIR.GetItem("Popup 1").GetItem("midPicker");type: object
ссылка на элемент
functionfunction(in_position){}type: function
не именованная функция или обращение к функции
pointer-type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
in_position4type: number
текущая позиция 2 элемента барабана после прокрутки
Position3type: 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")
});
}
});
}
Подсказка

Пример с применением перерисовки барабана с датой в зависимости от выбранного месяца :