roTouchScreen
23 min
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 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)