How to add processing of pressings for several objects in one AddListener structure?

At the moment each interface item needs its own listener:

// array of items 
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() 
{ 	
        // when we do something when pressing of an array item, this. - an indicator to the item 	
        IR.Log("Pressed: " + this.Name); 	
        IR.Log(this.Name + " Value: " + this.Value); 
}  
// creation of listeners for all array items 
function RegisterButton() 
{    
    for(var i = 0; i < gRegisters.length; i++)   
    {       
       var item = gRegisters[i].item;       
       IR.AddListener(IR.EVENT_ITEM_PRESS, item, OnPress, item);    
    } 
}  
// the function which is executed at launch  
function Start() 
{   
    RegisterButton();

 }
 // begin creating listeners 
IR.AddListener(IR.EVENT_START,0, Start);
To get access to the data of a graphic item inside the OnPress function, it is necessary to refer to it using the link this. For example:

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

The possibility of reference to the data is achieved by sending the 4th parameter in the AddListener method:

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

You can learn the name of each item pressed or subscribe for pressings on all items in the project using the following instructions

This article was helpful for 4 people. Is this article helpful for you?