11.07.2015 Views

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Como todo exibidor de objeto de mídia, uma vez instanciado, o exibidor doobjeto imperativo executa um procedimento de iniciação. Diferent<strong>em</strong>ente doque acontece para os outros exibidores de mídia, esse procedimento deve serespecificado (programado) pelo autor do objeto. O procedimento de iniciaçãoé executado apenas uma vez, para cada instância, e cria todos os trechos decódigos e estrutura de dados que pod<strong>em</strong> ser usados durante a execução doobjeto. Esse procedimento é também o responsável por registrar um ou mais“tratadores de evento” para a comunicação com o formatador <strong>NCL</strong>. O leitordeve ter <strong>em</strong> mente que pelo menos o código associado à “âncora de conteúdoprincipal” deve ser criado no procedimento de iniciação.Depois do procedimento de iniciação, a execução do objeto imperativo setorna orientada a eventos, nas duas direções. Isto é, qualquer ação comandadapelo formatador <strong>NCL</strong> é entregue aos tratadores de evento registrados, equalquer modificação na máquina de estado de eventos, comandadas porinstruções do código imperativo, também programadas pelo autor do objeto, éenviada como um evento ao formatador <strong>NCL</strong> (como caso particular, o finalnatural da execução de um trecho de código).A Listag<strong>em</strong> 17.2 ilustra o uso de âncoras de conteúdo <strong>em</strong> um objetoimperativo com código Lua. Uma ação de start (disparada por um elo nosentido do ambiente imperativo) no objeto Lua aciona o procedimento deiniciação do objeto (se ele já não foi acionado e o exibidor já não estáinstanciado). Na Listag<strong>em</strong> 17.2, os trechos de código que pod<strong>em</strong> ser usadosna execução do objeto são então criados (no caso, apenas o código associadoà âncora de conteúdo principal) e o tratador de eventos é registrado. O eventode “start” da execução (apresentação) é então passado ao tratador de eventos,que aciona a execução do código associado à âncora de conteúdo principal,mostrado na figura.Ainda na Listag<strong>em</strong> 17.2, a execução do código, <strong>em</strong> certo ponto, coloca amáquina de estado da âncora de atributo label=“final” no estado “ocorrendo”,devendo essa mudança de estado ser notificada pelo exibidor do objeto d<strong>em</strong>ídia imperativo ao formatador <strong>NCL</strong> (event.post (’out’, evt), nafigura). Essa transição de estado pode, por ex<strong>em</strong>plo, ser a condição dedisparo de um elo. Esse ex<strong>em</strong>plo simples ilustra como cabe ao programadorcontrolar a execução das máquinas de estado associadas às suas âncoras deconteúdo (e às suas propriedades, <strong>em</strong>bora estas não sejam mostradas noex<strong>em</strong>plo). Ao final, pod<strong>em</strong>os observar mais uma vez como o programacontrola a sinalização ao formatador <strong>NCL</strong>, agora para notificar o fim daexecução do objeto imperativo (event.post ({class=’ncl’,type=’presentation’, action=’stop’}).366

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

Saved successfully!

Ooh no, something went wrong!