Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

telemidia.puc.rio.br
from telemidia.puc.rio.br More from this publisher
11.07.2015 Views

tanto, vamos colocar o elemento “choro” do tipo áudio e oselementos “imgChorinho”, “imgRock”, “imgTechno” e“imgCartoon”, do tipo imagem, dentro (como filhos) de um elemento “menu”. Vamos também colocar cinco elementos , cada ummapeando para cada um dos novos elementos definidos. Comorealizar uma ação “start” em um contexto sem especificar a porta significaque todas as portas devem receber a ação, bastará termos um relacionamentoespecificando o “start” do elemento “menu” para que todos osícones sejam apresentados e o chorinho iniciado, como queríamos.Continuando com nosso cenário, vamos estabelecer que, em qualquerinstante em que um dos ícones for acionado, com exceção do ícone dochorinho, o chorinho terá seu volume colocado em “zero” (mudo), o ritmocorrespondente ao ícone selecionado iniciará sua apresentação e os demaisritmos serão abruptamente terminados. A qualquer momento que o ícone dochorinho for selecionado, os demais ritmos cessarão e o áudio do choro serárestabelecido em seu valor inicial.Para conseguirmos o efeito descrito no parágrafo anterior maisfacilmente, vamos reunir os três áudios (elementos “rock”, “techno”e “cartoon”) em um elemento , identificado como “musics”, ecolocá-lo também como filho do elemento “menu”. O elemento terá uma porta (elemento ) mapeada para os trêselementos de mídia representando os áudios, que serão escolhidos conforme ovalor do atributo focusIndex do elemento representando o íconeassociado ao ritmo que foi selecionado pela tecla ENTER do controle remoto.Para tanto, a variável global “service.currentFocus” (uma propriedade do nósettings por nós já discutido) será consultada. Essa variável é mantida pelosistema exibidor da aplicação NCL, contendo sempre o valor do atributofocusIndex corrente.Quando quisermos parar todos os elementos filhos do elemento “menu”, bastará realizar uma ação “stop” sobre o contexto, semespecificar nenhuma porta. Na nova versão da aplicação, vamos querer queisso aconteça quando o vídeo da animação atingir o ponto em que sãoapresentados os créditos dos autores (elemento “segCred”). AListagem 3.45 ilustra a definição do elemento que permite esseprocedimento.114

Listagem 3.45 Finalização de todos os elementos em exibição do contexto “menu”.Teremos, então, a visão estrutural ilustrada na Figura 3.18 para essanova versão de O Primeiro João.StartStartonBeginonBeginonBeginonEndonBeginStopStartStopStartStopContexto deInteratividadeSetpositionContexto dePropagandaonSelectionSet vol.Set vol.chorinhoStopStoponSelectionStartcurrentFocus = ?rock techno cartoonFigura 3.18 Visão estrutural de O Primeiro João com navegação por teclas.Note pela Figura 3.18 que a seleção de qualquer um dos três ícones,“imgRock”, “imgTechno” ou “imgCartoon”, coloca o volume do chorinho emzero, para a exibição dos demais áudios e inicia a apresentação do áudiocorrespondente ao foco corrente, ou seja, ao áudio associado ao íconeselecionado.Para definir o elemento “menu”, novas regras de seleçãodevem ser definidas no elemento que, em sua nova versão, seguea especificação ilustrada na Listagem 3.46. Note que as novas regrasintroduzidas dizem respeito à variável “service.currentFocus”, que terá seuvalor testado contra o valor do atributo focusIndex de cada um dos íconesassociados aos elementos representando os vários ritmos. A regra éconsiderada satisfeita se houver igualdade entre os valores.115

tanto, vamos colocar o el<strong>em</strong>ento “choro” do tipo áudio e osel<strong>em</strong>entos “imgChorinho”, “imgRock”, “imgTechno” e“imgCartoon”, do tipo imag<strong>em</strong>, dentro (como filhos) de um el<strong>em</strong>ento “menu”. Vamos também colocar cinco el<strong>em</strong>entos , cada ummapeando para cada um dos novos el<strong>em</strong>entos definidos. Comorealizar uma ação “start” <strong>em</strong> um contexto s<strong>em</strong> especificar a porta significaque todas as portas dev<strong>em</strong> receber a ação, bastará termos um relacionamentoespecificando o “start” do el<strong>em</strong>ento “menu” para que todos osícones sejam apresentados e o chorinho iniciado, como queríamos.Continuando com nosso cenário, vamos estabelecer que, <strong>em</strong> qualquerinstante <strong>em</strong> que um dos ícones for acionado, com exceção do ícone dochorinho, o chorinho terá seu volume colocado <strong>em</strong> “zero” (mudo), o ritmocorrespondente ao ícone selecionado iniciará sua apresentação e os d<strong>em</strong>aisritmos serão abruptamente terminados. A qualquer momento que o ícone dochorinho for selecionado, os d<strong>em</strong>ais ritmos cessarão e o áudio do choro serárestabelecido <strong>em</strong> seu valor inicial.Para conseguirmos o efeito descrito no parágrafo anterior maisfacilmente, vamos reunir os três áudios (el<strong>em</strong>entos “rock”, “techno”e “cartoon”) <strong>em</strong> um el<strong>em</strong>ento , identificado como “musics”, ecolocá-lo também como filho do el<strong>em</strong>ento “menu”. O el<strong>em</strong>ento terá uma porta (el<strong>em</strong>ento ) mapeada para os trêsel<strong>em</strong>entos de mídia representando os áudios, que serão escolhidos conforme ovalor do atributo focusIndex do el<strong>em</strong>ento representando o íconeassociado ao ritmo que foi selecionado pela tecla ENTER do controle r<strong>em</strong>oto.Para tanto, a variável global “service.currentFocus” (uma propriedade do nósettings por nós já discutido) será consultada. Essa variável é mantida pelosist<strong>em</strong>a exibidor da aplicação <strong>NCL</strong>, contendo s<strong>em</strong>pre o valor do atributofocusIndex corrente.Quando quisermos parar todos os el<strong>em</strong>entos filhos do el<strong>em</strong>ento “menu”, bastará realizar uma ação “stop” sobre o contexto, s<strong>em</strong>especificar nenhuma porta. Na nova versão da aplicação, vamos querer queisso aconteça quando o vídeo da animação atingir o ponto <strong>em</strong> que sãoapresentados os créditos dos autores (el<strong>em</strong>ento “segCred”). AListag<strong>em</strong> 3.45 ilustra a definição do el<strong>em</strong>ento que permite esseprocedimento.114

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!