roTextWidget
26 min
este objeto se utiliza para mostrar texto en la pantalla tenga en cuenta que el modo "scrolling ticker" está limitado a 10 tickers a la vez puede tener 100 rotextwidgets, siempre que estén en algún otro modo (por ejemplo, "static text") creación de objetos este objeto se crea utilizando una de dos variantes opción 1 createobject("rotextwidget", r as rorectangle, line count as integer, text mode as integer, pause time as integer) r una instancia de rorectangle que contiene el texto line count el número de líneas de texto que se mostrarán dentro del rectángulo modo de texto las características de animación del texto 0 una vista animada similar a un teletipo 1 texto estático 2 texto simple sin cola de cadenas 3 scrolling ticker (las cadenas están separadas con un diamante de forma predeterminada; el separador se puede modificar utilizando el método setseparator() ) tenga en cuenta que esta opción no está disponible para los modelos lsx22, hdx20 o hdx10 pause time el tiempo durante el que se muestra cada cadena antes de mostrar la siguiente cadena esto no se aplica al modo de texto 2 o 3 porque las cadenas en pantalla se actualizan inmediatamente opción 2 createobject("rotextwidget", r as rorectangle, line count as integer, text mode as integer, parameters as roassociativearray) r una instancia de rorectangle que contiene el texto line count el número de líneas de texto que se mostrarán dentro del rectángulo modo de texto las características de animación del texto 0 una vista animada similar a un teletipo 1 texto estático 2 texto simple sin cola de cadenas 3 teletipo con desplazamiento (las cadenas están separadas con un diamante de forma predeterminada; el separador puede modificarse usando el método setseparator() ) tenga en cuenta que esta opción no está disponible para los modelos lsx22, hdx20 o hdx10 parámetros una matriz asociativa que puede incluir los siguientes valores conteo de líneas el número de líneas de texto que se mostrarán dentro del rectángulo modotexto las características de animación del texto 0 una vista animada similar a un teletipo 1 texto estático 2 texto simple sin cola de cadenas 3 teletipo con desplazamiento (las cadenas están separadas con un diamante de forma predeterminada; el separador puede modificarse usando el método setseparator() ) tenga en cuenta que esta opción no está disponible para los modelos lsx22, hdx20 o hdx10 pausetime el tiempo durante el cual se muestra cada cadena antes de mostrar la siguiente esto no se aplica al modo de texto 2 o 3 porque las cadenas en pantalla se actualizan inmediatamente rotación la rotación del texto dentro del widget (tenga en cuenta que las coordenadas y dimensiones del rectángulo en sí no se rotan) 0 0 grados 1 90 grados este valor también puede representarse en grados (90) o radianes ( 5π) 2 180 grados este valor también puede representarse en grados (180) o radianes (π) 3 270 grados este valor también puede representarse en grados (270) o radianes (1 5π) alineación la alineación del texto 0 izquierda 1 centro 2 derecha los modos 0, 1 y 3 son útiles para mostrar fuentes rss y texto tipo ticker sin embargo, para datos dinámicos donde se requieren actualizaciones inmediatas de la pantalla, el modo 2 puede ser más apropiado el modo 2 permite que el texto se dibuje inmediatamente en la pantalla el modo de texto 3 (ticker con desplazamiento) admite modos de desplazamiento tanto de derecha a izquierda como de izquierda a derecha (p ej , árabe, hebreo), según el idioma de la primera cadena o archivo agregado al widget para cambiar la dirección del desplazamiento, primero deberá eliminar todas las cadenas del ticker iftextwidget setglobalparameter(param as string, value as integer) as void configura parámetros relacionados con los tickers con desplazamiento (es decir, modo de texto 3) los siguientes son parámetros aceptados startat la posición inicial del texto en desplazamiento, que puede ser cualquier número entre 0 (el lado izquierdo de la pantalla) y el ancho total del widget para comenzar en el lado derecho de la pantalla (es decir, fuera de pantalla), especifique un valor de 1 o el ancho total del widget autopop la configuración autopop para el widget si este valor se establece en 1, las cadenas se eliminan automáticamente (se extraen de la pila) una vez que se han desplazado fuera de pantalla si este valor se establece en 0 (el comportamiento predeterminado), las cadenas no se eliminan automáticamente autoaddseparator la configuración del separador para el widget establecer este valor en 0 deshabilita los separadores de cadenas (útil para mostrar emojis con el método pushsurface() ), mientras que establecer este valor en 1 habilita los separadores de cadenas (el comportamiento predeterminado) brecha el espacio (en píxeles) entre la cadena y el separador de cadenas (tanto al principio como al final de las cadenas) el valor predeterminado es 0 es posible que este parámetro no sea confiable si el ticker contiene cadenas en su memoria los parámetros globales pueden modificarse después de que se llame a show() , pero en algunos casos (por ejemplo, el parámetro startat ) sus resultados no están definidos los parámetros autopop y autoaddseparator están pensados para utilizarse una vez que se haya llamado a show() getglobalparameter(param as string) as integer devuelve el valor de un parámetro establecido mediante el método setglobalparameter() este método también devuelve un valor para el parámetro de solo lectura " last string id ", que es un identificador único para la cadena agregada más recientemente al valor de lista lista que es idéntico al entero devuelto por los métodos pushstring() y pushsurface() pushstring(str as string) as boolean agrega la cadena a la lista de elementos que se mostrarán en los modos 0, 1 y 3 las cadenas se muestran en orden y, cuando se llega al final, el objeto entra en bucle y vuelve al principio de la lista en el modo 2, la cadena se muestra inmediatamente este método devuelve un identificador único, que puede utilizarse con mensajes rotextwidgetevent para determinar cuándo la cadena se ha desplazado fuera de pantalla si no se puede agregar un elemento a la lista, se devuelve "0" agregar demasiadas cadenas sin extraerlas de la pila provocará que pushstring() devuelva false (la cantidad exacta depende del tamaño de fuente de cada cadena) la cantidad máxima recomendada de cadenas almacenadas es 64 pushsurface(image as roimagebuffer) as integer agrega una imagen bitmap a la lista de elementos que se mostrarán en los modos 0, 1 y 3 las imágenes se escalan para coincidir con la altura del ticker este método devuelve un identificador único, que puede utilizarse con mensajes rotextwidgetevent para determinar cuándo la imagen/superficie se ha desplazado fuera de pantalla si no se puede agregar un elemento a la lista, se devuelve "0" actualmente no hay restricciones de formato, pero se recomienda utilizar el mismo formato de color que la pantalla principal popstrings(number of string to pop as integer) as boolean extrae elementos del frente de la lista (utilizando un orden "último en entrar, primero en salir") en los modos 0, 1 y 3 esto ocurre la próxima vez que el widget se reinicie en bucle para que los elementos puedan agregarse y eliminarse del widget sin interrupciones en el modo 2, el elemento se elimina del widget inmediatamente getstringcount() as integer devuelve la cantidad de elementos que existirán una vez que se hayan realizado todas las extracciones pendientes clear() as boolean borra la lista de elementos, dejando el widget en blanco y listo para aceptar más llamadas a pushstring() setstringsource(file path as string) as boolean muestra el archivo de texto en la ruta especificada como una única cadena continua este método solo es aplicable al modo de texto 3 (ticker desplazable) cuando se llega al final del archivo, el widget de texto vuelve al inicio en bucle, utilizando un símbolo de diamante como separador setanimationspeed(speed as integer) as boolean establece la velocidad a la que se muestra el texto animado este método solo es aplicable a los modos de texto 0 y 3 modo 0 el valor de velocidad predeterminado es 10000 establecer un entero por encima de este valor disminuye la velocidad del ticker estilo teletipo por ejemplo, especificar un valor de 20000 reducirá a la mitad la velocidad predeterminada a la que se muestra el texto, mientras que un valor de 5000 duplicará la velocidad predeterminada modo 3 el valor de velocidad predeterminado es 10000 debido a que la velocidad de un ticker desplazable se mide en píxeles por segundo (pps), la velocidad debe ser un múltiplo de la velocidad de fotogramas actual; de lo contrario, se redondeará hacia abajo al múltiplo más cercano (por ejemplo, una velocidad de fotogramas de 60p respetará valores de pps de 60, 120, 180, etc ) el software determina la velocidad del ticker desplazable realizando el siguiente cálculo sobre el parámetro velocidad pasado pps = (velocidad 60) / 10000 setseparator(separator as string) as boolean cambia el separador entre cadenas el separador de diamante predeterminado será reemplazado por el contenido de la cadena pasada este método se aplica solo al modo de texto 3 (ticker de desplazamiento suave) las siguientes cadenas indican símbolos especiales "\ diamond ", "\ circle ", "" setsyncmanager(domain as string) as boolean especifica un dominio de rosyncmanager docid\ ytmejva nfntuflxdtnew para usar al ejecutar la llamada setmultiscreen() cuando se llama a este método, crea un dominio interno basado en el dominio existente de rosyncmanager y utiliza los mismos parámetros de red recomendamos usar este método en lugar de pasar una dirección ip multicast y un puerto al propio método setmultiscreen() setmultiscreen(offset as integer, size as integer, ip address as string, port as integer) as boolean muestra un ticker de desplazamiento suave en múltiples pantallas para especificar parámetros de sincronización de red, puede llamar primero al método setsyncmanager() o pasar los valores opcionales dirección ip y puerto al método setmultiscreen() (se prefiere llamar a setsyncmanager() ) si usa setsyncmanager() , no especifique dirección ip / puerto ; hacerlo puede provocar un comportamiento inesperado la pantalla maestra se designa como la instancia con el desplazamiento más a la derecha de todos los reproductores en el arreglo multipantalla; todas las llamadas a pushstring() y show() (así como cualquier otro cambio) deben realizarse en la instancia maestra las instancias seguidoras del widget de texto permanecerán en blanco hasta que se inicie el líder este método requiere los siguientes parámetros desplazamiento el desplazamiento (en píxeles) de la pantalla en el arreglo multipantalla por ejemplo, usar un desplazamiento de 1920 en un arreglo de dos pantallas de 1920x1080 especificaría este reproductor como la pantalla derecha (maestra) tamaño el ancho total (en píxeles) del arreglo multipantalla por ejemplo, definir un tamaño de 3840 especificaría un arreglo de dos pantallas de 1920x1080 dirección ip una cadena que especifica la dirección ip multicast para el tráfico de red de rosyncmanager docid\ ytmejva nfntuflxdtnew (p ej , "239 192 0 0") puerto una cadena que especifica el puerto multicast para el proceso de sincronización ptp (p ej , 1234) los reproductores pueden admitir más de un ticker multipantalla al mismo tiempo ifwidget show() as boolean muestra el widget después de su creación, el widget permanece oculto hasta que se llama a show() hide() as boolean oculta el widget raise() as void envía el widget a la parte superior del orden z en el plano gráfico (es decir, delante de todas las demás superficies que implementan la interfaz ifwidget ) de forma predeterminada, los nuevos widgets se colocan en la parte superior del orden z gráfico algunas superficies siempre se dibujan en la parte superior del orden z gráfico, incluidos el cursor del mouse, los subtítulos opcionales y los tickers de desplazamiento sugerencia puede usar los métodos pausegraphics() / resumegraphics() en el objeto rovideomode docid\ f0dvnrbdpvgozlrvb29gd para garantizar que múltiples cambios en el orden z gráfico ocurran simultáneamente lower() as void envía el widget a la parte inferior del orden z en el plano gráfico (es decir, detrás de todas las demás superficies que implementan la interfaz ifwidget ) de forma predeterminada, los nuevos widgets se colocan en la parte superior del orden z gráfico setforegroundcolor(color as integer) as boolean establece el color de primer plano en formato argb los 8 bits superiores son parámetros de "alpha" cero equivale a completamente transparente y 255 a completamente no transparente los valores alpha de primer plano actualmente no son compatibles con el modo ticker 3 (ticker de desplazamiento) y serán ignorados por este método este comportamiento puede cambiar en futuras versiones de firmware los valores de color hexadecimales deben convertirse en enteros antes de pasarse a este método (por ejemplo, el valor \&hffffffff debe pasarse como 4294967295) puede usar el método hextointeger() (disponible en extensión de biblioteca principal docid\ a2aq frnag8hdssdqny8k ) para convertir una cadena hexadecimal en un entero setbackgroundcolor(color as integer) as boolean establece el color de fondo en formato argb los 8 bits superiores son parámetros de "alpha" cero es equivalente a completamente transparente y 255 a completamente no transparente esta función permite efectos similares a los subtítulos por ejemplo, puede crear un cuadro negro semitransparente que contenga texto sobre video los valores de color hexadecimales deben convertirse en enteros antes de pasarse a este método (por ejemplo, el valor \&hffffffff debe pasarse como 4294967295) puede usar el método hextointeger() (disponible en extensión de biblioteca principal docid\ a2aq frnag8hdssdqny8k ) para convertir una cadena hexadecimal en un entero setfont(font filename as string) as boolean especifica una fuente personalizada para el widget usando un archivo de fuente truetype del almacenamiento local (por ejemplo, "sd /comicsans ttf") setbackgroundbitmap(bitmap filename as string, stretch as boolean) as boolean establece la imagen bitmap de fondo si stretch es true, entonces la imagen se estira al tamaño del widget setbackgroundbitmap(parameters as roassociativearray, stretch as boolean) as boolean establece la imagen bitmap de fondo si estirar es true, entonces la imagen se estira al tamaño del widget el arreglo asociativo puede contener los siguientes parámetros nombre de archivo el nombre del archivo de imagen encryptionalgorithm el algoritmo de cifrado de archivos actualmente las opciones son "aesctr" y "aesctrhmac" encryptionkey la clave para descifrar el archivo de imagen este es un arreglo de bytes compuesto por 128 bits de clave, seguidos por 128 bits de iv consulte la sección descifrado de imágenes docid\ z65qez0xwq9c70obegcyi en la entrada roimageplayer para obtener detalles sobre cómo mostrar imágenes cifradas setsafetextregion(region as rorectangle) as boolean especifica el rectángulo dentro del widget donde el texto puede dibujarse de forma segura setrectangle(r as rorectangle) as boolean cambia el tamaño y la posición del rectángulo del widget usando el objeto rorectangle getfailurereason() as string proporciona información útil adicional si el valor de retorno de una función indica un error