Iniciando e terminando dois nós simultaneamente <?xml version="1.0" encoding="iso-8859-1"?> <!-- Generated by NCL Eclipse --> <ncl id="sincronismo" xmlns="http://www.ncl.org.br/ncl3.0/edtvprofile"> <head> <regionbase> <region id="rgtv" left="0" top="0" width="100%" height="100%"> <region id="rgvideo" left="25%" top="25%" width="50%" height="50%"> <region id="rgbotao" right="5%" bottom="5%" width="20%" </region> </region> </regionbase> <descriptorbase> height="20%"/> <descriptor id="dvideo" region="rgvideo"/> <descriptor id="dbotao" region="rgbotao"/> </descriptorbase> <connectorbase> <causalconnector id="onbeginstart"> <simplecondition role="onbegin"/> <simpleaction role="start"/>
Iniciando e terminando dois nós simultaneamente <causalconnector id="onendstop"> <simplecondition role="onend"/> <simpleaction role="stop"/> </connectorbase> </head> <body> <media id="video" type="video/mpeg" src="video.mpg descriptor="dvideo"/> <media id="botao" type="image/jpeg" src="botao.jpg descriptor="dbotao"/> <port id="pinicio" component="video"/> <link xconnector="onbeginstart"> <bind component="video" role="onbegin"/> <bind component="botao" role="start"/> </link> <link xconnector="onendstop"> <bind component="video" role="onend"/> <bind component="botao" role="stop"/> </link> </body> </ncl>
Conectores Tabela de Condições
Conectores Tabela de Ações
Iniciando um objeto de mídia sincronizado a outro com retardo Para isso, será definido um novo conector, onbeginstardelay, que aceita como parâmetro a duração de retardo Tomando como base o exemplo anterior, é necessário: Criar o conector com retardo; Modificar o elo que inicia a imagem para utilizar o novo conector Definindo o conector com retardo
Iniciando um objeto de mídia sincronizado a outro com retardo Entretanto, para deixar o conector mais genérico, pode-se adicionar um parâmetro para que o tempo seja definido em cada elo que utilize o conector
Iniciando um objeto de mídia sincronizado a outro com retardo Tomando como partida o elo definido no exemplo anterior: além de alterar o nome, é necessário definir o valor do parâmetro oretardo
Iniciando um objeto de mídia quando o outro termina Visão Estrutural
Iniciando um objeto de mídia quando o outro termina Tomando como base o exemplo anterior, devem ser criados os seguintes elementos: Um nó de mídia para o segundo vídeo; Um conector onendstart; Um elo que utilize o conector. O conector onendstop: <head>... </head> <connectorbase> <causalconnector id= onendstart > <simplecondition role= onend /> <simpleaction role= start /> </connectorbase>
Iniciando um objeto de mídia quando o outro termina Definindo o elo: <body>... <link xconnector id= onendstart > <bind component= video1.mpg role= onend /> <bind component= video2.mpg role= start /> </link>... </body>
Interrompemdo um vídeo e iniciando outro conforme a intervenção do usuário O objetivo é modificar o exemplo anterior para que o usuário possa interromper a exibição de um vídeo e passar para o próximo clicando em uma tecla do controle remoto Para capturar a interação do usuário, precisamos de um novo conector, desta vez um que utilize o papel onselection, e que receba como parâmetro o código da tecla a ser pressionada Passo-a-passo Um conector onkeyselectionstop; e Um elo que utilize o conector
Interrompendo um vídeo e iniciando outro conforme a intervenção do usuário Definindo o conector
Interrompendo um vídeo e iniciando outro conforme a intervenção do usuário Definindo o elo de interatividade <body>... <link xconector= onkeyselectionstop > <bind component= botao.jpg role= onselection > <bindparam name= atecla value= GREEN /> </bind> <bind compenent= video1.mpg role= stop /> </link>... </body>
Interrompendo um vídeo e iniciando outro conforme a intervenção do usuário <?xml version="1.0" encoding="iso-8859-1"?> <!-- Generated by NCL Eclipse --> <ncl id="interacao1" xmlns="http://www.ncl.org.br/ncl3.0/edtvprofile"> <head> <regionbase> <region id="rgtv" left="0" top="0" width="100%" height="100%"> <region id="rgvideo1" left="5%" top="5%" width="50%" height="50%" zindex="1"> <region id="rgbotao" right="5%" bottom="5%" width="20%" height="20%"/> </region> <region id="rgvideo2" right="5%" bottom="5%" width="50%" height="50%" zindex="3"/> </region> </regionbase> <descriptorbase> <descriptor id="dvideo1" region="rgvideo1"/> <descriptor id="dvideo2" region="rgvideo2"/> <descriptor id="dbotao" region="rgbotao"/> </descriptorbase>
Interrompendo um vídeo e iniciando outro conforme a intervenção do usuário <connectorbase> <causalconnector id="onbeginstartdelay"> <connectorparam name="oretardo"/> <simplecondition role="onbegin"/> <simpleaction role="start" delay="$oretardo"/> <causalconnector id="onendstop"> <simplecondition role="onend"/> <simpleaction role="stop"/> <causalconnector id="onendstart"> <simplecondition role="onend"/> <simpleaction role="start"/> <causalconnector id="onkeyselectionstop"> <connectorparam name="atecla"/> <simplecondition role="onselection" key="$atecla"/> <simpleaction role="stop"/> </connectorbase> </head>
Interrompendo um vídeo e iniciando outro conforme a intervenção do usuário <body> <media id="video1" type="video/mpeg" src="video.mpg" descriptor="dvideo1"/> <media id="video2" type="video/mpeg" src="video.mpg" descriptor="dvideo2"/> <media id="botao" type="image/jpeg" src="botao.jpg" descriptor="dbotao"/> <port id="pinicio" component="video1"/> <link xconnector="onbeginstartdelay"> <bind component="video1" role="onbegin"/> <bind component="botao" role="start"> <bindparam name="oretardo" value="2s"/> </bind> </link> <link xconnector="onendstop"> <bind component="video1" role="onend"/> <bind component="botao" role="stop"/> </link>
Interrompendo um vídeo e iniciando outro conforme a intervenção do usuário <link xconnector="onendstart"> <bind component="video1" role="onend"/> <bind component="video2" role="start"/> </link> <link xconnector="onkeyselectionstop"> <bind component="botao" role="onselection"> <bindparam name="atecla" value="green"/> </bind> <bind component="video1" role="stop"/> </link> </body> </ncl>
Trabalhando com bases de conectores em arquivos separados Existem duas formas de se definir e utilizar conectores: Definindo os novos conectores no próprio hiperdocumento Criando um novo arquivo de conectores e importando-o na seção connectorbase O primeiro passo é criar um arquivo NCL contendo os conectores Como será criada uma base de conectores apenas, sem qualquer mídia, não é necessário a seção body
Trabalhando com bases de conectores em arquivos separados <?xml version="1.0" encoding="iso-8859-1"?> <!-- Generated by NCL Eclipse --> <ncl id="interacao1 xmlns=http://www.ncl.org.br/ncl3.0/edtvprofile> <head> <connectorbase> <causalconnector id="onbeginstart"> <simplecondition role="onbegin"/> <simpleaction role="start"/> <causalconnector id="onkeyselectionpause"> <connectorparam name="atecla"/> <simplecondition role="onselection" key="$atecla"/> <simpleaction role="pause"/> <causalconnector id="onendstop"> <simplecondition role="onend"/> <simpleaction role="stop" max="unbounded" qualifier="par"/>
Trabalhando com bases de conectores em arquivos separados <causalconnector id="onkeyselectionstart"> <connectorparam name="atecla"/> <simplecondition role="onselection" key="$atecla"/> <simpleaction role="start"/> <causalconnector id="onkeyselectionstop"> <connectorparam name="atecla"/> <simplecondition role="onselection" key="$atecla"/> <simpleaction role="stop"/> <causalconnector id="onkeyselectionresume"> <connectorparam name="atecla"/> <simplecondition role="onselection" key="$atecla"/> <simpleaction role="resume"/> </connectorbase> </head> </ncl>
Trabalhando com bases de conectores em arquivos separados Importando a base de conectores Para importar os conectores para o programa principal, utiliza-se o elemento importbase dentro do elemento connectorbase: <connectorbase> <importbase alias= meusconectores documenturi= conectores.ncl > </connectorbase> Modificando os elos para utilizar os conectores importados <link xconnector= meusconectores#onbeginstart >... <link xconnector= meusconectores#onendstop >......