Popup page sending states

Q:
for one project I would like to change the state of a button when a popup is shown
is it possible to integrate this and so,
 
what are the type and feedback relations I have to use?

A:
You can use the following listener events to determine whether a page or popup is shown or not.  just change it for your specific popup and add the code to adjust the global variable in the function of the listener.

  // triggered when popup 1 is shown
  IR.AddListener(IR.EVENT_ITEM_SHOW, IR.GetPopup("Popup 1"), function(){
  IR.Log("SHOWING POPUP 1");
  });

  //triggered when popup 1 is hidden
  IR.AddListener(IR.EVENT_ITEM_HIDE, IR.GetPopup("Popup 1"), function(){
  IR.Log("HIDING POPUP 1");
  });

Project Tokens Scripting

rocfusion:

Hi,

When you are using project tokens in your scripts. Be careful to watch for invalid tokens.

To account for this you could use something like this, it would be placed in the init part of your script.

if(IR.GetVariable("Global.MyToken")==undefined || IR.GetVariable("Global.MyToken")==NaN || IR.GetVariable("Global.MyToken")==null) { IR.SetVariable("Global.MyToken",0) }      

Here if MyToken is not valid it will reset to the value of 0.


Thanks,


Roger

Cant fill the value (info)

Q:
The line:

IR.GetItem("Popup").GetItem("Item 1").Value = 50;

Doesn't work in Javascript, If I use Text in stead of Value it works fine. 

A:
Please change  item property "Feedback" = channel.

APP FUNCTIONS: Show system menu

Download Example

 

Read manual:

Wiki RU

Wiki EN (coming soon)

Можно ли в одну структуру AddListener добавить обработку нажатий для нескольких объектов?

На данный момент каждый элемент интерфейса нуждается в своем слушателе:

// массив элементов
var gRegisters = [
   {item: IR.GetItem("Page 1").GetItem("1")},
   {item: IR.GetItem("Page 1").GetItem("2")},
   {item: IR.GetItem("Page 1").GetItem("3")},
];

function OnPress()
{
	// что-то делаем при нажатии на элемент массива, this. - указатель на item
	IR.Log("Pressed: " + this.Name);
	IR.Log(this.Name + " Value: " + this.Value);
}

// создание слушателей для всех элементов массива
function RegisterButton()
{
   for(var i = 0; i < gRegisters.length; i++)
   {
      var item = gRegisters[i].item;
      IR.AddListener(IR.EVENT_ITEM_PRESS, item, OnPress, item);
   }
}

// функция, выполняющаяся по старту
function Start()
{
   RegisterButton();
}
// начинаем создание слушателей
IR.AddListener(IR.EVENT_START,0, Start);
Что бы получить доступ к данным графического элемента внутри функции OnPress, необходимо обратиться к нему по ссылке this. Например:

function OnPress() {
	var NameOfItem = this.Name;
	IR.Log( NameOfItem );
}

Возможность обращения к данным достигается путем передачи 4-го параметра в метод AddListener:

IR.AddListener(IR.EVENT_ITEM_PRESS, item, OnPress, item);

Вы можете узнать имя нажатого элемента или подписаться на нажатия всех элементов в проекте, используя следующие инструкции.

Помогите сделать "бегущую строку"

Если текст не помещается в Item, то нужно его прокручивать. Желательно иметь возможность делать паузу перед началом прокрутки и выбирать скорость. То есть сделать стандартное поле для вывода данных о композиции у плеера.

Change Item Opacity (Transparency)

If you want to set the transparency of Item when the Light changes, you can do it directly (send Light Value to Item.Opacity) or via the script.
The script would be needed if your light changes from 0 to 100 untill the Opacity changes from 0 to 255.



// items
var Level = IR.GetItem("Main").GetItem("Light Level 1");
var Item = IR.GetItem("Main").GetItem("Light Item 1").GetState(0);
// driver name
var driver = IR.GetDevice("KNX Router (KNXnet/IP)");
//by Start
Item.Opacity = 0;
// change opacity manually (using ScriptCall function)
function OpacityChange ()
{
    Item.Opacity = Level.Value*255/100;
}
// change opacity by Feedback from equipment 
IR.AddListener(IR.EVENT_TAG_CHANGE , driver, function(name,value)
{
   Item.Opacity = Level.Value*255/100;
});
Opacity Change by Value.irpz


If you want to convert the feedback only use this script:

var FeedbackConvert;
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("KNX"), function(name, value)
{
if (name == "Address 1")
{
FeedbackConvert = (value*255)/100
IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Opacity = FeedbackConvert;
IR.Log("Value = "+ value)
}else{
IR.Log("unknown")
}
});


Сервис поддержки клиентов работает на платформе UserEcho