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

380-- 2.lua:function tratador (evt)if (evt.class == 'ncl') and (evt.type =='presentation')and (evt.action == 'start') thenevent.post {class = 'ncl',type = 'presentation',action = 'stop'}endendevent.register(tratador)Listagem 18.8 Código do arquivo 2.lua do Exemplo 18.1.Tão logo o evento indicando seu início é recebido, o NCLua posta umevento para sinalizar o seu fim natural.• O terceiro NCLua registra um tratador de eventos que cria umtemporizador de três segundos que, por sua vez, gera seu fim natural aoexpirar. Como efeito visual, temos a exibição do terceiro botão verde e,após três segundos, a mudança para vermelho.-- 3.lua:function tratador (evt)if (evt.class == 'ncl') and(evt.type == 'presentation') and(evt.action == 'start') thenevent.timer(3000,function()event.post {class = 'ncl',type = 'presentation',action = 'stop'}end)endendevent.register(tratador)Listagem 18.9 Código do arquivo 3.lua do Exemplo 18.1.O temporizador de três segundos (3.000 milissegundos) é criado assim queo evento de início é recebido, passando a função que deve ser executadaquando o temporizador expira. Essa função posta um evento idêntico ao dosegundo NCLua para sinalizar seu fim natural.

Enquanto executa indefinidamente, o primeiro NCLua não consomerecursos e pode responder a eventos (apesar de não o fazer por não possuirum tratador para tal fim). O mesmo ocorre com o terceiro NCLua enquantoaguarda os três segundos para terminar.18.3.1 Eventos em Âncoras de Conteúdo e PropriedadesNo exemplo anterior, apenas a âncora de conteúdo principal de cadaNCLua foi acionada. No entanto, âncoras de conteúdo específicas epropriedades também podem ser relacionadas entre o documento NCL e oobjeto NCLua.Dados os tipos de eventos gerados pelo formatador NCL, o campo type deum evento da classe ncl pode assumir os valores “presentation” ou“attribution”, conforme o atributo eventType dos conectores NCL (ver Seção10.5). Eventos do tipo “selection” são tratados pela classe key.18.3.1.1 Eventos do Tipo “presentation”Eventos de apresentação estão associados à apresentação de âncoras deconteúdo, sendo identificadas pelo campo label do evento. O campo actionindica a ação a ser realizada ou sinalizada pelo NCLua, dependendo de eleestar recebendo ou gerando o evento.Um evento de apresentação possui a seguinte estrutura:• class: 'ncl'• type: 'presentation'• label: [string] — rótulo da âncora associada ao evento• action: [string] — pode assumir os seguintes valores: 'start','stop', 'abort', 'pause' e 'resume'18.3.1.2 Eventos do Tipo “attribution”Eventos de atribuição estão associados às propriedades do objeto NCLua,sendo identificados pelo campo name.O campo value é preenchido com o valor a ser atribuído à propriedade e ésempre uma string, uma vez que vem de um atributo NCL. A ação de “start”em um evento de atribuição corresponde ao papel “set” (ou “start”) de um eloNCL.Um evento de atribuição possui a seguinte estrutura:381

380-- 2.lua:function tratador (evt)if (evt.class == 'ncl') and (evt.type =='presentation')and (evt.action == 'start') thenevent.post {class = 'ncl',type = 'presentation',action = 'stop'}endendevent.register(tratador)Listag<strong>em</strong> 18.8 Código do arquivo 2.lua do Ex<strong>em</strong>plo 18.1.Tão logo o evento indicando seu início é recebido, o <strong>NCL</strong>ua posta umevento para sinalizar o seu fim natural.• O terceiro <strong>NCL</strong>ua registra um tratador de eventos que cria umt<strong>em</strong>porizador de três segundos que, por sua vez, gera seu fim natural aoexpirar. Como efeito visual, t<strong>em</strong>os a exibição do terceiro botão verde e,após três segundos, a mudança para vermelho.-- 3.lua:function tratador (evt)if (evt.class == 'ncl') and(evt.type == 'presentation') and(evt.action == 'start') thenevent.timer(3000,function()event.post {class = 'ncl',type = 'presentation',action = 'stop'}end)endendevent.register(tratador)Listag<strong>em</strong> 18.9 Código do arquivo 3.lua do Ex<strong>em</strong>plo 18.1.O t<strong>em</strong>porizador de três segundos (3.000 milissegundos) é criado assim queo evento de início é recebido, passando a função que deve ser executadaquando o t<strong>em</strong>porizador expira. Essa função posta um evento idêntico ao dosegundo <strong>NCL</strong>ua para sinalizar seu fim natural.

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

Saved successfully!

Ooh no, something went wrong!