====== imgTouch_OnTouch ====== The **imgTouch_OnTouch** function allows add custom LED array touch function. The **ev** parameter is an event object which has 3 fields: X, Y in range 0..1 and action ("Up", "Down", "Move"). Default touch handler works as below: function ( ev ) { //app.Debug( "x=" + ev.X + " y=" + ev.Y ); //Calculate which LED we are touching. var x = Math.floor( ev.X * 5 ); var y = Math.floor( ev.Y * 5 ); //Keep x and y between 0 and 4. x = Math.min( Math.max(x,0), 4 ); y = Math.min( Math.max(y,0), 4 ); //app.Debug( "LED = " + x + "," + y ); if( ev.action=="Move" ) _this.SetLED( x, y ); else if( ev.action=="Up" ) _this.SendLEDStates(); } It could be changed to different behavior. ====Example - Custom imgTouch_OnTouch handler==== This script has custom touch handler toggling LEDs without swipe. Only one LED is toggled at "Down" action. // Load the MicroBit plugin. app.LoadPlugin( "MicroBit" ); // Called when application is started. function OnStart() { // Lock screen orientation to Portrait. app.SetOrientation( "Portrait" ); // Create our main layout. lay = app.CreateLayout( "Linear", "VCenter,FillXY" ); lay.SetBackColor( "#222222" ); // Create the Microbit plugin. microbit = app.CreateMicroBit(); // Create MicroBit controller. ctrl = microbit.CreateController( 0.9 ); // Adds custom imgTouch_OnTouch handler ctrl.imgTouch_OnTouch = imgTouch_OnTouch; lay.AddChild( ctrl ); //Create horizontal layout for buttons layButs = app.CreateLayout( "Linear", "Horizontal" ); layButs.SetMargins( 0,0.05,0,0 ); lay.AddChild( layButs ); //Create a bluetooth connect button. btnConnect = app.CreateButton( "[fa-bluetooth-b]", 0.25, 0.15, "FontAwesome" ); btnConnect.SetTextSize( 66 ); btnConnect.SetTextColor( "#3366ff" ); btnConnect.SetOnTouch( txtBT_OnTouchDown ); layButs.AddChild( btnConnect ); //Create clear button. btnClear= app.CreateButton( "[fa-times]", 0.25, 0.15, "FontAwesome" ); btnClear.SetTextSize( 66 ); btnClear.SetTextColor( "#ff4444" ); btnClear.SetOnTouch( btnClear_OnClick ); layButs.AddChild( btnClear ); //Add main layout to the app. app.AddLayout( lay ); } // Handle Bluetooth button press. function txtBT_OnTouchDown() { microbit.Scan(); } // Handle 'clear' button press. function btnClear_OnClick() { ctrl.Clear(); } // Handle toggling LEDs without swipe. Only one LED is toggled at "Down" action. function imgTouch_OnTouch( ev ) { //app.Debug( ev.X+':'+ev.Y+':'+ev.action ); //Calculate which LED we are touching. var x = Math.floor( ev.X * 5 ); var y = Math.floor( ev.Y * 5 ); //Keep x and y between 0 and 4. x = Math.min( Math.max(x,0), 4 ); y = Math.min( Math.max(y,0), 4 ); //app.Debug( "LED = " + x + "," + y ); if ( ev.action=="Down" ) { ctrl.ToggleLED( x, y ); } }