Материал из for iRidium developers
Перейти к: навигация, поиск
Эта страница является переводом страницы List API. Перевод выполнен на 100%.

Other languages:

API iRidium. Списки (List)

методы, события и свойства для работы с динамическими списками, которые можно заполнять в процессе работы приложения


IR.ITEM_LISTBOX

Методы, используемые при работе с динамическими списками: графическими элементами типа 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 используется не только для создания, но и для редактирования списков. Если элемент списка уже существует, он не будет удален - заменятся только свойства, указанные при вызове метода


.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 мс, команда перелистывания идущая сразу же после команды создания нового элемента списка - выполнена не будет.




События

Событие - процесс, проброшенный в скрипты и имеющий идентификатор для отслеживания.

Слушатель - это функция, которая выполняется в случае срабатывания указанного ей события

Добавьте слушатель с помощью метода 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(item, subitem) {} type: function
не именованная функция или обращение к функции
pointer - type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
item 2 type: number
пункт списка, на который нажали, начиная с 0
subitem 1 type: number
подпункт списка, на который нажали
  • 0 - сам подпункт
  • 1...n - элемент на подпункте, по порядку отображения в редакторе


Пример

IR.AddListener(IR.EVENT_ITEM_SELECT, IR.GetItem("Page 1").GetItem("List 1"), function(item, subitem) {
IR.Log("pressed "+item+" / "+subitem);
});





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(item, subitem, event_type, object) {} type: function
не именованная функция или обращение к функции
pointer - type: object
указатель на объект, который обслуживает функцию (опционально)
на выходе
item 2 type: number
пункт списка, на который нажали, начиная с 0
subitem 1 type: number
подпункт списка, на который нажали
  • 0 - сам подпункт
  • 1...n - элемент на подпункте, по порядку отображения в редакторе
event_type 11 type: number
тип события, которое произошло:
  • 11 - Press
  • 12 - Release
  • 13 - Move
object [Object DialogItemPrototype] type: object
ссылка на подпункт списка, который изменился, предоставляет доступ к его свойствам для чтения и записи


Пример

var list = IR.GetItem("Page 1").GetItem("List 1");
IR.AddListener(IR.EVENT_LIST_ITEM_CHANGE, list, function(item, subitem, event_type, object) {
    if (event_type == 11)
    switch(object.Name)
    {
        case "Item 1":
            IR.Log("List Item: "+item+" Subitem: "+subitem+" Pressed");
            break;
        case "Item 2":
            IR.Log("List Item: "+item+" Subitem: "+subitem+" Pressed");
            break;
    }
});

список возможных свойств подпункта (object) см. в API iRidium. Страницы и элементы
дерево родословной элементов:

  • Page / Popup - страница или попап
    • List - список
      • Item - пункт списка
        • Subitem - подпункт списка




Свойства

Свойства списков - графических элементов типа List:

IR.GetItem(page/popup).GetItem(list).property

Template "Popup 1" type: string
позволяет установить или запросить шаблон для пунктов списка, которым является один из попапов проекта
Direction 0 type: number
позволяет установить или запросить направление прокрутки списка:
  • 0 - вертикальный список
  • 1 - горизонтальный список
ItemsCount 24 type: number
позволяет запросить количество пунктов списка
Filter "A" type: string
позволяет отфильтровать пункты списка по их имени (части имени)
Enable 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"
//** Enable **//
list.Enable = true; // list can be flipped manually
list.Enable = false; // list cannot be flipped manually


IR.ITEM_GOOD_LIST (beta)

Методы, используемые при работе с динамическими списками: графическими элементами типа 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);

на входе значение описание
name "GList 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 GList = IR.CreateItem(IR.ITEM_GOOD_LIST, "GList 1", 20, 20, 250, 600); 
    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.Color = 0xFFFFFFFF;
   l_list.SelectMode = 1; // 0 - cannot secect, 1 - one secected item, 1 - any number of items can be marked as selected  
   l_list.Direction = 0;  // 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 secect, 1- one secected item, 1 - any number of items can be marked as selected
*  l_oGList1.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);

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





Свойства

Свойства списков - графических элементов типа 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
позволяет получить или изменить позицию списка
.Color 0xFFFFFFFF type: RGBA
позволяет изменить цвет подложки списка
.Adapter.total 24 type: number
позволяет запросить количество пунктов списка
.Adapter.Item.Subitem.Property type:
позволяет получить доступ к свойствам пунктов и подпунктов списка при обращении к пунктам по имени или идентификатору (с нуля). К подпунктам - по имени. Набор свойств см. в GUI API: Свойства графических элементов и их состояний


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();
});