Anda di halaman 1dari 4

Documentacin 3 Autor: Miguel Alejandro Callejas Pastor Interaccin Bsica con Botones en NCL Dentro las principales funciones

del lenguaje NCL se encuentra la posibilidad de hacer interaccin con los botones del control remoto. Se considera una universalidad en los controles para los Set Top Box, por lo que el middleware de Ginga reconoce a una cantidad limitada de botones con sus respectivas equivalencias en cdigo. Los botones reconocidos para la interaccin son los siguientes: Rojo (F1) Verde (F2) Azul (F3) Amarillo (F4) Men (F5) Info (F6) Guide (F7) Ok (ENTER) Exit (Esc) Flechas de Direccin (arriba, abajo, derecha e izquierda)

El siguiente ejemplo es un programa muy sencillo que muestra en pantalla el smbolo de interactividad (una letra i) y permite presionar un botn para que se inicie otra actividad. Este es un ejemplo tipo plantilla, pues idealmente se debe utilizar en todos los programas desarrollados en NCL para televisin digital. El programa est enfocado solamente a la interactividad con la iniciacin al presionar un botn. Despus de presionar el botn aparecer una imagen en toda la pantalla que representar el programa propiamente dicho. Para poder entender el cdigo vamos a conocer el concepto de los conectores. Conectores <connectorBase> Los conectores son aquellos que se encargarn de la interactividad entre los medios de un mismo programa y los que sern provocados por el control remoto (usuario). La seccin debe ser declarada entre las etiquetas <head> y </head> en el encabezado del programa. Ejemplo:
<head> <connectorBase> <causalConnectorid="onEndStart"> <simpleConditionrole="onEnd"/> <simpleActionrole="Start"/> </causalConnector> </connectorBase> </head>

Dentro de las etiquetas del connectorBase se declaran los conectores que van a dar lugar a la interactividad del programa. El <causalConnector> es una etiqueta que sirve para enunciar la consecuencia que tendr una accin previa. En el ejemplo leemos lo siguiente: cuando la actividad termine onEnd (condicin) otra comienza Start (accin).

El id del conector resume la condicin y la accin de dicho encabezado. Esto se relacionar a los objetos presentados en pantalla ms adelante. Debemos entender que existe un nmero limitado de condiciones y de acciones que pueden ser ledas e interpretadas por el lenguaje NCL. Las condiciones son las siguientes: onBegin onEnd onAbort onPause onResume onSelection onBeginAttribution onEndAttribution

Y las acciones reconocidas son las siguientes: start stop abort pause resume set

Conectores con Botones Los anteriores conectores funcionan independientemente de los botones del control remoto. Es decir, si tenemos un vdeo y una imagen. Y ambos estn relacionados con el conector: onEndStart. Automticamente cuando el vdeo finalice (onEnd) la imagen se mostrar (Start). Para poder utilizar los botones del control debemos aadir una lnea a la declaracin de los conectores en el encabezado.
<connectorBase> <causalConnector id="onKeySelectionStop"> <connectorParam name="aTecla"/> <simpleCondition role="onSelection" key="$aTecla" /> <simpleAction role="Stop" /> </causalConnector> </connectorBase>

En el anterior cdigo podemos ver la implementacin de la etiqueta <connectorParam>. Esta es la encargada de relacionar la variable del botn del control remoto. Entonces se puede leer: Cuando la variable del botn sea ingresada (onSelection) entonces la accin se detendr (Stop). Se pueden usar otras combinaciones para darle distintas acciones a dicha condicin. Las respectivas combinaciones de las condiciones y las acciones estn centralizadas en un documento que se genera automticamente utilizando el plugin NCL para Eclipse. Este archivo de conectores nos facilita la declaracin de los mismos.

Para ello, si tenemos el archivo de conectores dentro de la misma carpeta del cdigo. Lo nico que debemos hacer es llamarlo desde el programa principal para que pueda ser utilizado. De la siguiente manera:
<connectorBase> <importBase documentURI="conectores.ncl" alias="MisConectores"/> </connectorBase>

Como podemos ver, el documento de conectores es llamado y asignado un alias. De esta forma podemos utilizar todos los conectores ya elaborados en el programa principal. Interaccin con los objetos <link xconnector= > Una vez que ha sido declarado el conector en la cabecera del programa. Pasamos a asignar objetos a las condiciones y acciones de nuestros conectores. En este sencillo ejemplo vamos a poner una imagen sobre un fondo transparente que permita identificar que existe contenido interactivo. Una vez presionado el botn (VERDE) est imagen se borrar y aparecer otra:
<nclid="example1"xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile"> <head> <regionBase> <regionid="rgBoton"right="50"top="50"width="30"height="30"zIndex="5"> </region> <regionid="rgImg"width="100%"height="100%"zIndex="1"> </region> </regionBase> <descriptorBase> <descriptorid="desBoton"region="rgBoton"> </descriptor> <descriptorid="desImg"region="rgImg"> </descriptor> </descriptorBase> <connectorBase> <causalConnectorid="onEndStart"> <simpleConditionrole="onEnd"/> <simpleActionrole="Start"/> </causalConnector> <causalConnectorid="onKeySelectionStop"> <connectorParamname="aTecla"/> <simpleConditionrole="onSelection"key="$aTecla"/> <simpleActionrole="Stop"/> </causalConnector> </connectorBase> </head> <body> <mediaid="boton"src="media/boton.jpg"descriptor="desBoton"/> <portid="pBoton"component="boton"/> <linkxconnector="onKeySelectionStop"> <bindrole="onSelection"component="boton"> <bindParamname="aTecla"value="GREEN"/> </bind> <bindrole="Stop"component="boton"> </bind> </link> <mediaid="img"src="media/imagen.jpg"descriptor="desImg">

</media> <linkxconnector="onEndStart"> <bindrole="onEnd"component="boton"/> <bindrole="Start"component="img"/> </link> </body>

</ncl>

En el anterior ejemplo utilizamos dos conectores: OnKeySelectionStop Este detendr la presentacin de la imagen de interactividad en cuanto se presione el botn de seleccin VERDE. Podemos ver que se asocian a sus objetos a travs del id de las medias. OnEndStart Este iniciar la imagen que representa el contenido interactivo del cdigo tan pronto termine la presentacin de la imagen pequea de interactividad. Nota: Es importante mencionar que en el caso de la imagen que representa la interactividad del programa no es necesario declarar el PORT. Es ms, si se lo declara, ambas imgenes se presentaran al mismo tiempo. Esto porque el port tiene como objetivo dar un lugar en la presentacin de objetos independientemente de la interactividad. En este caso entonces, no lo utilizamos.

Anda mungkin juga menyukai