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