---
title: roTouchScreen
slug: develop/es/rotouchscreen
docTags: 
createdAt: 2025-03-11T07:07:18.733Z
---

Este objeto acepta entradas de paneles de pantalla táctil o ratones. Para cada entrada reconocida, el objeto generará un objeto *roTouchEvent* . Consulte la sección "roTouchScreen" de la [Guía de migración de BrightScript a JavaScript](docId\:imtBD2LffaORoXierGC2a) para conocer los métodos equivalentes en JavaScript.

No todas las pantallas táctiles son compatibles. Consulte [esta página](docId\:ACL5V8_jQiuq3SntxSNfO) para obtener una lista completa de pantallas táctiles compatibles. El objeto *roTouchScreen* responde a los clics de un ratón USB de la misma manera que responde a los eventos táctiles en una pantalla táctil.

Para configurar la interactividad de la pantalla táctil/ratón, siga este esquema:

1. Cree una instancia de *roTouchScreen*.
2. Utilice `SetPort()` para especificar una instancia de *roMessagePort* que reciba los eventos de *roTouchScreen*.
3. Defina una o más regiones táctiles.
   1. Una región táctil puede ser rectangular o circular.
   2. Cuando se produce un toque o clic en cualquier parte dentro del área de una región táctil, se enviará un evento al puerto de mensajes.
   3. Si las regiones táctiles se superponen de manera que un clic o toque alcance múltiples regiones, se enviará un evento para cada región afectada.
4. Procese los eventos.

El objeto *roTouchScreen* admite regiones rollover. Los rollovers se basan en regiones táctiles. Cuando se agrega una región rectangular o circular, de manera predeterminada no tiene rollover. Puede utilizar el método `EnableRollover()` para agregar una imagen *encendido* y *apagado* para una región. Siempre que el cursor del ratón esté dentro de esa región, se mostrará la imagen *encendido*. En todos los demás casos, se mostrará la imagen *apagado*. Esto permite resaltar botones a medida que el cursor del ratón se mueve sobre ellos.

## ifTouchScreen

### SetResolution(x As Integer, y As Integer) As Void

### AddRectangleRegion(x As Integer, y As Integer, w As Integer, h As Integer, region\_id As Integer) As Void

Agrega una región táctil rectangular a la pantalla. El region\_id se utiliza para asociar la región táctil con eventos de *roTouchEvent* y para vincular la región con imágenes rollover.

### AddCircleRegion(x As Integer, y As Integer, radius As Integer, region\_id As Integer) As Void

Agrega una región táctil circular a la pantalla. El `region_id` se utiliza para asociar la región táctil con eventos de *roTouchEvent* y para vincular la región con imágenes rollover.

### ClearRegions() As Void

Borra la lista de regiones agregadas mediante `AddRectangleRegion()` o `AddCircleRegion()` para que cualquier contacto en esas regiones ya no genere eventos. Esta llamada no tiene efecto sobre los gráficos rollover.

### GetDeviceName() As String

### SetCursorPosition(x As Integer, y As Integer) As Void

### SetCursorBitmap(filename As String, x As Integer, y As Integer) As Void 

Especifica un archivo BMP o PNG como icono del cursor del ratón. Este método también acepta un "hot spot" (es decir, el punto dentro del rectángulo del icono que activará eventos cuando se haga clic con el ratón) como un conjunto de coordenadas **x,y**. El icono puede ser un rectángulo de cualquier ancho o alto.

### EnableCursor(enable As Boolean) As Void

Muestra un cursor en pantalla si se pasa `Verdadero`.

### EnableRollover(region\_id As Integer, on\_image As String, off\_image As String, cache\_image As Boolean, image\_player As Object) As Void

Habilita un rollover para una región táctil. Este método acepta el ID de la región táctil, así como dos cadenas que especifican los nombres de las imágenes de mapa de bits *encendido* y *apagado*, una configuración de caché y el reproductor de imágenes que dibuja el rollover. El parámetro `cache_image` simplemente indica al script si debe mantener los mapas de bits cargados en memoria o no. Esta configuración consume memoria muy rápidamente, por lo que recomendamos que `cache_image` normalmente se establezca en 0.

### SetRollOverOrigin(region\_id As Integer, x As Integer, y As Integer) As Void

Cambia el origen para que más (o menos) de la pantalla cambie cuando el mouse entra y sale de la región. Esto significa que se pueden dibujar mapas de bits más grandes que la región. El requisito predeterminado es que los mapas de bits de rollover tengan el mismo tamaño y posición que la región táctil. Tenga en cuenta que el mapa de bits es cuadrado para regiones circulares. El origen predeterminado para regiones circulares es \[x - r]**,** \[y – r], donde &#x78;**,** y es el centro del círculo y r es el radio.

:::hint{type="danger"}
Los métodos `EnableRollover()` y `SetRollOverOrigin()` han quedado obsoletos. A partir de OS8, los puntos finales existen, pero no realizan ninguna función.
:::

### EnableRegion(region\_id As Integer, enabled As Boolean) As Void

Habilita o deshabilita una región de rollover. Este método acepta el ID de la región táctil, así como un valor Boolean (True o False). Las regiones de rollover están habilitadas de forma predeterminada cuando se crean, pero puede configurar todas las regiones al inicio de su script y luego habilitar las regiones según sea necesario.

### IsMousePresent() As Boolean

Devuelve `Verdadero` si un dispositivo señalador relativo está conectado al reproductor. Esto no funciona para dispositivos absolutos como pantallas táctiles.

### SetMouseRotation(rotation As Integer) As Boolean

Transforma las entradas de movimiento del mouse para tener en cuenta la rotación de la pantalla. Este método puede aceptar los siguientes enteros:

- 0: Las entradas no cambian (es decir, orientación horizontal).
- 1, 90: Girado 90 grados (es decir, orientación vertical en sentido horario).
- 2, 180: Girado 180 grados.
- 3, 270: Girado 270 grados (es decir, orientación vertical en sentido antihorario).

### EnableSerialTouchscreen(a As Integer) As Boolean

### SetSerialTouchscreenConfiguration(a As String) As Boolean

### GetDiagnosticInfo() As String

Devuelve una cadena HTML con información capturada que describe el hardware que se conectó y los eventos que ocurrieron durante el proceso de calibración. Este método es utilizado por el script de calibración para diagnosticar problemas de la pantalla táctil.

## ifSetMessagePort

### SetPort(port As roMessagePort)

Publica mensajes de tipo *roTouchEvent* y *roTouchCalibrationEvent* en el puerto de mensajes adjunto.

## ifTouchScreenCalibration

### StartCalibration() As Boolean

### GetCalibrationStatus() As Integer

### GetDiagnosticInfo() As String

### ClearStoredCalibration() As Boolean

### StartEventLogging() As Boolean

### StopEventLogging() As Boolean

### ClearEventLogs() As Boolean

### SetCalibrationRanges(x-min As Integer, x-max As Integer, y-min As Integer, y-max As Integer) As Boolean

Sobrescribe los valores del rango de pantalla proporcionados por la pantalla táctil. Este método es útil cuando la totalidad de la salida de video no se muestra en la superficie táctil. El uso práctico de este método normalmente requiere un script de calibración personalizado, imágenes apropiadas y una configuración de calibración adaptada a una configuración particular.

## ifSerialControl

### SetBaudRate(baud\_rate As Integer) As Boolean

Establece la velocidad en baudios del dispositivo. Las velocidades en baudios compatibles son las siguientes: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400.

### NotUsed1(a As String)

### SetMode(a As String) As Boolean

### NotUsed2(a As Boolean) As Boolean

## Ejemplos

Este script reproduce un video en bucle y espera un clic del mouse o una entrada de la pantalla táctil. Envía las coordenadas del clic o toque al shell si se encuentran dentro de la región definida.

```text
v=CreateObject("roVideoPlayer")
t=CreateObject("roTouchScreen")
p=CreateObject("roMessagePort")

v.SetPort(p)
t.SetPort(p)
v.SetLoopMode(True)
v.PlayFile("testclip.mp2v")

t.AddRectangleRegion(0,0,100,100,2)

loop:
    msg=Wait(0, p)
    print "type: ";type(msg)
    print "msg=";msg
    if type(msg)="roTouchEvent" then
        print "x,y=";msg.GetX();msg.GetY()
    endif
    goto loop:
```

Este script incluye compatibilidad con mouse:

```text
t=CreateObject("roTouchScreen")
t.SetPort(p)
REM Puts up a cursor if a mouse is attached
REM The cursor must be a 16 x 16 BMP
REM The x,y position is the "hot spot" point
t.SetCursorBitmap("cursor.bmp", 16, 16)
t.SetResolution(1024, 768)
t.SetCursorPosition(512, 389)
REM
REM Pass enable cursor display:  TRUE for on, and FALSE for off
REM The cursor will only enable if there is a mouse attached
REM
t.EnableCursor(true)
```

Este script incluye una región de rollover y compatibilidad con mouse:

```text
img=CreateObject("roImagePlayer")
t=CreateObject("roTouchScreen")
p=CreateObject("roMessagePort")
t.SetPort(p)


t.SetCursorBitmap("cursor.bmp", 16, 16)
t.SetResolution(1024, 768)
t.SetCursorPosition(512, 389)
t.EnableCursor(true)


img.DisplayFile("\menu.bmp")


REM Adds a rectangular touch region
REM Enables rollover support for that region
REM Sets the rollover origin to the same position as the touch region REM
t.AddRectangleRegion(0, 0, 100, 100, 1)
t.EnableRollOver(1, "on.bmp", "off.bmp", true, img)
t.SetRollOverOrigin(1, 0, 0)
```

###

