Geen vergelijkbare onderwerpen gevonden.
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:
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.
A:
Please change item property "Feedback" = channel.
Можно ли в одну структуру AddListener добавить обработку нажатий для нескольких объектов?
На данный момент каждый элемент интерфейса нуждается в своем слушателе:
Возможность обращения к данным достигается путем передачи 4-го параметра в метод 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")
}
});
Customer support service by UserEcho