BSTicker
Para obtener más información sobre los métodos disponibles, consulte la entrada roTextWidget . Este objeto se puede usar para mostrar un ticker de desplazamiento de texto.
BSTicker utiliza rutas de estilo BrightScript en lugar de rutas nativas (una ruta de estilo Unix o un URI).
Este objeto admite modos de desplazamiento tanto de derecha a izquierda como de izquierda a derecha (por ejemplo, árabe, hebreo), según el idioma de la primera cadena o archivo agregado al widget. Para cambiar la dirección de desplazamiento, primero elimine todas las cadenas del ticker.
Creación de objetos
BSTicker(in unsigned long x, in unsigned long y, in unsigned long w, in unsigned long h, in long rotation);
Los enteros x e y especifican la posición del widget ticker (a través de la esquina superior izquierda), mientras que los enteros w y h especifican el tamaño del widget. El parámetro rotación acepta los siguientes valores (la rotación es en sentido antihorario desde el modo horizontal):
- 0: 0 grados
- 90: 90 grados
- 180: 180 grados
- 270: 270 grados
El parámetro rotación solo afecta el texto dentro del ticker; no altera las coordenadas de pantalla del propio widget. Si está creando un ticker vertical o rotando el ticker para que coincida con contenido HTML en modo vertical, deberá usar los parámetros de coordenadas x, y, w, h para que coincidan con la rotación del texto.
Métodos
- SetRectangle(en unsigned long x, en unsigned long y, en unsigned long w, en unsigned long h) boolean: Modifica la posición (x,y) y el tamaño (w,h) del widget ticker. Cambiar el tamaño del widget restablecerá la animación del ticker. Mientras el tamaño del widget permanezca sin cambios, modificar la posición no interrumpirá la animación del ticker. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- AddString(en DOMString str) int: Agrega una cadena a la cola. Este método devuelve un entero string_id que se puede usar para identificar qué cadena se eliminó cuando se genera el evento ontickerstringremoved; un valor de retorno cero indica que el método no pudo agregar la cadena. Agregar demasiadas cadenas sin extraerlas de la pila hará que AddString() devuelva un valor distinto de cero (el número exacto depende del tamaño de fuente de cada cadena). El número máximo recomendado de cadenas almacenadas es 64.
- AgregarSurface(en ImageData image)int: Agrega una imagen de mapa de bits a la lista de cadenas que se mostrarán. La imagen debe ser del tipo DatosDeImagen. Este método devuelve un entero string_id que se puede usar para identificar qué superficie se elimina cuando se genera el evento ontickerstringremoved. Consulte el código en la parte inferior de esta página para ver un ejemplo de uso de un lienzo/imagen con este método.
- PopStrings(in unsigned long count) boolean: Elimina la cantidad designada de cadenas de la cola. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetAutoPop(in boolean) boolean: Si este método se establece en Verdadero, las cadenas se eliminan automáticamente (se extraen de la pila) una vez que se han desplazado fuera de la pantalla.
- SetForegroundColor(en unsigned long argb)boolean: Especifica el color de primer plano como un número de 32 bits en formato ARGB (Alpha, Red, Green, Blue). Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetForegroundColor(en unsigned long a, en unsigned long r, en unsigned long g, en unsigned long b)boolean: Establece el color de primer plano en rojo, verde y azul (los valores alfa de primer plano actualmente no son compatibles y este método los ignora, aunque esto puede cambiar en futuras versiones de firmware). a, r, g y b son valores enteros entre 0 y 255. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetBackgroundColor(en unsigned long argb)boolean: Especifica el color de fondo como un número de 32 bits en formato ARGB (Alpha, Red, Green, Blue). Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- EstablecerColorDeFondo(en unsigned long a, en unsigned long r, en unsigned long g, en unsigned long b)boolean: Establece el color de fondo en alfa, rojo, verde y azul. Mientras que los valores alfa estándar están entre 0.0 y 1.0, los valores en BSTicker son sin signo largo (o los 8 bits superiores de un sin signo largo). Los valores se asignan entre 0x00 y 0xff para corresponder a 0.0 y 1.0. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetSeparatorString(en DOMString str)boolean: Utilice una cadena de texto para separar mensajes individuales. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetSeparatorCircle()boolean: Utilice un círculo para separar mensajes individuales. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetSeparatorDiamond()boolean: Utilice un rombo para separar mensajes individuales. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetSeparatorSquare()boolean: Utilice un cuadrado para separar mensajes individuales. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetPixelsPerSecond(en unsigned long pps) unsigned long: Establece la velocidad del ticker.
- EstablecerFuente(en DOMString fuente) boolean: Especifica una fuente para BSTicker (así como para el objeto BrightScript roTextWidget). Este método acepta una lista de nombres de font-family (similar a la propiedad CSS <font-family>). La cadena también puede tener un prefijo font-face: para indicar que esta es una descripción de fuente (por ejemplo, font-face:DejaVu Serif,Serif Italic Bold). Las fuentes deben agregarse al widget HTML usando el método roHtmlWidget.AddFont() antes de que puedan utilizarse en una instancia de BSTicker. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetSyncManager(en DOMString domain) boolean: Especifica un dominio BSSyncManager para usar al ejecutar la llamada SetMultiscreen() . Cuando se llama a este método, crea un dominio interno basado en el dominio BSSyncManager existente y utiliza los mismos parámetros de red. Recomendamos utilizar este método en lugar de pasar una dirección IP multicast y un puerto al propio método SetMultiscreen() . Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- SetMultiscreen(en unsigned long offset, en unsigned long size, en DOMString ip_address, en unsigned long port) boolean: Llame al método SetMultiscreen() para crear un ticker que se desplace suavemente a través de múltiples pantallas. Este método devuelve Verdadero en caso de éxito, o Falso en caso de error.
- desplazamiento: Determina el punto de inicio izquierdo (en píxeles) en la matriz multipantalla. El valor del parámetro siempre será 0 para la pantalla más a la izquierda. Este parámetro debe calcularse utilizando la longitud del ticker multipantalla, no la longitud total de la pantalla multipantalla. Por ejemplo, utilizar un offset de 1920 en una matriz de dos pantallas de 1920x1080 especificaría este reproductor como la pantalla derecha (maestra). Para crear un ticker que se desplace suavemente a través de múltiples pantallas, llame al método SetMultiscreen() en cada página.
- tamaño: El ancho total (en píxeles) de la matriz multipantalla en todas las pantallas. Este parámetro debe tener el mismo valor para cada llamada a SetMultiscreen() . Tenga en cuenta que el tamaño de un ticker multipantalla puede ser diferente del ancho total de una pantalla multipantalla (por ejemplo, si el ancho de un widget BSTicker es menor que el ancho de la pantalla). Definir un tamaño de 3840 especificaría una matriz de dos pantallas de 1920x1080.
- dirección_ip: Una cadena que especifica la dirección IP multicast para el proceso de sincronización PTP (por ejemplo, "239.192.0.0")
- puerto: Una cadena que especifica el puerto multicast para el proceso de sincronización PTP (por ejemplo, "1234").
El siguiente diagrama de ejemplo y fragmentos de código especifican una pantalla multipantalla con dos monitores. El ancho de cada monitor es de 1024 píxeles, mientras que el ancho de cada ticker es de 768 píxeles:

Eventos
bsTicker.ontickerstringremoved
Este controlador de eventos se activa cuando una cadena ha sido eliminada y ya no es visible. El evento contiene la propiedad string_id , que es devuelta por una llamada exitosa a AddString().
Ejemplos
El siguiente script muestra cómo utilizar muchos de los métodos disponibles de BSTicker:
var bsTicker = new BSTicker(10, 110, 600, 30);
function addText1()
{
console.log('############ addText1');
bsTicker.AddString("addText1");
}
function addText2()
{
console.log('############ addText2');
bsTicker.AddString("addText2");
}
function addText3()
{
console.log('############ addText3');
bsTicker.AddString("addText3");
}
function setBackground1()
{
console.log('############ setBackground1');
bsTicker.SetBackgroundColor(0xFFFF0000);
}
function setBackground2()
{
console.log('############ setBackground2');
bsTicker.SetBackgroundColor(0xFF00FF00);
}
function setForeground1()
{
console.log('############ setForeground1');
bsTicker.SetForegroundColor(0xFF007700);
}
function setForeground2()
{
console.log('############ setForeground2');
bsTicker.SetForegroundColor(0xFF000077);
}
function setSeparatorString()
{
console.log('############ setSeparatorString');
bsTicker.SetSeparatorString(" ### ");
}
function setSeparatorCircle()
{
console.log('############ setSeparatorCircle');
bsTicker.SetSeparatorCircle();
}
function setSeparatorDiamond()
{
console.log('############ setSeparatorDiamond');
bsTicker.SetSeparatorDiamond();
}
function setSeparatorSquare()
{
console.log('############ setSeparatorSquare');
bsTicker.SetSeparatorSquare();
}
function setTickerSpeed()
{
console.log('############ setTickerSpeed');
var speed = bsTicker.SetPixelsPerSecond(180);
console.log('############ SetPixelsPerSecond(180), Resulting speed: ' + speed);
}Los siguientes ejemplos permiten agregar un canvas o una imagen al ticker con el método AddSurface():
//Loading a canvas
var ctx = canvas.getContext("2d");
var img = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height);
ticker.AddSurface(img);
//Loading an image
var imageObj = new Image();
imageObj.onload = function() {
canvas.width = this.width;
canvas.height = this.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0); // Use getImage Data as above
};
imageObj.src = "filename.jpg";