List API

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

Создание нового списка

Arrow download.png Пример создания списка 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");
}); 

Получение доступа

Arrow download.png Пример получения доступа 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

Arrow download.png Пример добавления нового элемента, 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

Arrow download.png Пример удаления элемента 0,4 Мб


Удаляет элемент из списка. Для использования метода необходимо получить доступ к списку.

Синтаксис:

List_1.DeleteItem(Item);

Параметры:

List_1 (список) - ссылка на список;
Item   (число)  - номер элемента, начиная с 0.

Пример:

// Из списка List_1 удаляем элемент с номером 0
List_1.DeleteItem(0);  


↑ К оглавлению

Clear

Arrow download.png Пример удаления всех элементов 0,4 Мб


Удаляет все элемент из списка. Для использования метода необходимо получить доступ к списку.

Синтаксис:

List_1.Clear();

Пример:

// Из списка List_1 удалим все элементы
List_1.Clear();


↑ К оглавлению

SetPosition

Arrow download.png Пример пролистывания списка 0,4 Мб


Пролистывает список до указанного элемента. Для использования метода необходимо получить доступ к списку.

Синтаксис:

List_1.SetPosition(Item);

Параметры:

List_1 (список) - ссылка на список;
Item   (число)  - номер элемента, начиная с 0;

Пример:

// Список List_1 перелистываем к элементу 2
List_1.SetPosition(2);

Особенности:

Для успешного перелистывания списка к указанному элементу:

  • элемент должен уже существовать
  • в момент выполнения команды SetPosition, список должен быть виден, это значит, что страница или попап содержащая список, должна быть в этот момент на экране
  • после создания нового элемента списка, должно пройти не менее 100 мс, команда перелистывания идущая сразу же после команды создания нового элемента списка - выполнена не будет.

↑ К оглавлению

Свойства

Свойства списков


Template

Arrow download.png Пример чтения / записи шаблона списка 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

Arrow download.png Пример чтения / записи направления списка 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

Arrow download.png Пример чтения количество элементов в списке 0,4 Мб


Количество элементов в списке. Свойство доступно чтения. Для использования свойства необходимо получить доступ к списку.

Синтаксис:

List_1.ItemsCount;

На выходе:

 Количество элементов в списке (число).

Пример чтения:

// Прочитаем количество элементов в списке List_1 и напечатаем результат в консоль отладки
IR.Log(List_1.ItemsCount); // в консоли отобразится, например 10


↑ К оглавлению

Filter

Arrow download.png Пример работы с фильтром списка 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

Arrow download.png Пример работы с событием 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)

Arrow download.png Пример работы с событием 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 - страница или попап;


Например: Субъэлемент списка имеет родителя - элемент списка.

Пример изменения значения одного субъэлемента списка, другим субъэлементом списка с помощью свойства 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;               // обнуляем таймер
      }
   } 
});       

↑ К оглавлению

Применение

Arrow download.png Пример применения списка 0,4 Мб

↑ К оглавлению