roTouchScreen
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 JavaScriptGuía de migración de BrightScript a JavaScript para conocer los métodos equivalentes en JavaScript.
No todas las pantallas táctiles son compatibles. Consulte esta página 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:
- Cree una instancia de roTouchScreen.
- Utilice SetPort() para especificar una instancia de roMessagePort que reciba los eventos de roTouchScreen.
- Defina una o más regiones táctiles.
- Una región táctil puede ser rectangular o circular.
- 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.
- 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.
- 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 x, y es el centro del círculo y r es el radio.
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.
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:
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:
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)