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

13.2 Reúso de Objetos de MídiaComo vimos brevemente no Capítulo 8, utilizamos os atributos refer einstance para reusar um objeto de mídia, incluindo seu conteúdo, seudescritor e quaisquer âncoras e propriedades definidos para ele.O atributo refer indica o id do objeto que deve ser reutilizado. Existe umaúnica restrição do uso. Um atributo refer não pode referenciar um objetodefinido na mesma composição que o contém diretamente.Quando um elemento declara um atributo refer, todos os atributos eelementos filhos definidos pelo elemento referenciado são herdados. Todos osoutros atributos e elementos filhos, se definidos pelo elemento que realiza areferência, são ignorados pelo formatador NCL, exceto o atributo id que deveser definido e, em alguns, o atributo descriptor, que pode ser redefinido(nesse caso excepcional, o atributo instance, apresentado a seguir, deve ter ovalor “new”). Ainda outra exceção é a possibilidade de se adicionar novoselementos filhos e . Se o novo elemento adicionado tiver o mesmo atributo name de um elemento jáexistente (definido no elemento reutilizado), o novo elemento adicionado é ignorado. Igualmente, se o novo elemento adicionado tiver o mesmo atributo id de um elemento já existente(definido no elemento reutilizado), o novo elemento adicionado é ignorado.O atributo instance pode ter os seguintes valores: “new”: objeto totalmente independente (reúso do código declarativo queespecifica o objeto). Trata-se de um novo objeto que é uma cópia do objetoreferenciado, incluindo suas âncoras de conteúdo e propriedades. Esse é ovalor default para o atributo instance. Apenas nesse caso o atributodescriptor pode ser redefinido; “instSame”: trata-se do mesmo objeto, iniciado para exibição junto com oobjeto referido, isto é, o objeto em exibição incorporará, desde suainiciação, todas as propriedades e âncoras de conteúdo definidas noelemento referenciado e nos elementos que o referenciam, e reportará todasas mudanças nas máquinas de estado de evento dessas interfaces a todosos elos associados a esses elementos ;298

“gradSame”: trata-se do mesmo objeto, mas que incorporará gradualmenteas propriedades e âncoras de conteúdo definidas no elementos quereferenciam e o referenciado, à medida que eles sofrerem ações de “start”.Apenas os elos associados aos elementos que já receberam a ação de startrecebem a notificação de mudanças nas máquinas de estado de evento dasinterfaces já incorporadas.Para facilitar o entendimento dessas diferentes formas de reúso, vamosconsiderar o código da Listagem 13.2.Listagem 13.2 Reúso de objetos de mídia através dos atributos refer e instance.Vamos supor, ainda, que haja elos disparados no início e término de cadaâncora, intitulados “link1_1_s”, “link1_1_e”, “link2_1_s”, “link2_1_e”, eassim por diante. A Figura 13.2 ilustra partes da visão estruturalcorrespondente. Podemos observar que a âncora “a1_1” é herdada por todosos objetos de mídia que se referem a “video1” e que, por isso, pode participarde outros elos nos diferentes contextos em que os objetos são definidos. Emparticular, definimos um elo “link1_1_e_ctx4” no contexto “ctx4” parailustrar essa característica.299

13.2 Reúso de Objetos de MídiaComo vimos brev<strong>em</strong>ente no Capítulo 8, utilizamos os atributos refer einstance para reusar um objeto de mídia, incluindo seu conteúdo, seudescritor e quaisquer âncoras e propriedades definidos para ele.O atributo refer indica o id do objeto que deve ser reutilizado. Existe umaúnica restrição do uso. Um atributo refer não pode referenciar um objetodefinido na mesma composição que o contém diretamente.Quando um el<strong>em</strong>ento declara um atributo refer, todos os atributos eel<strong>em</strong>entos filhos definidos pelo el<strong>em</strong>ento referenciado são herdados. Todos osoutros atributos e el<strong>em</strong>entos filhos, se definidos pelo el<strong>em</strong>ento que realiza areferência, são ignorados pelo formatador <strong>NCL</strong>, exceto o atributo id que deveser definido e, <strong>em</strong> alguns, o atributo descriptor, que pode ser redefinido(nesse caso excepcional, o atributo instance, apresentado a seguir, deve ter ovalor “new”). Ainda outra exceção é a possibilidade de se adicionar novosel<strong>em</strong>entos filhos e . Se o novo el<strong>em</strong>ento adicionado tiver o mesmo atributo name de um el<strong>em</strong>ento jáexistente (definido no el<strong>em</strong>ento reutilizado), o novo el<strong>em</strong>ento adicionado é ignorado. Igualmente, se o novo el<strong>em</strong>ento adicionado tiver o mesmo atributo id de um el<strong>em</strong>ento já existente(definido no el<strong>em</strong>ento reutilizado), o novo el<strong>em</strong>ento adicionado é ignorado.O atributo instance pode ter os seguintes valores: “new”: objeto totalmente independente (reúso do código declarativo queespecifica o objeto). Trata-se de um novo objeto que é uma cópia do objetoreferenciado, incluindo suas âncoras de conteúdo e propriedades. Esse é ovalor default para o atributo instance. Apenas nesse caso o atributodescriptor pode ser redefinido; “instSame”: trata-se do mesmo objeto, iniciado para exibição junto com oobjeto referido, isto é, o objeto <strong>em</strong> exibição incorporará, desde suainiciação, todas as propriedades e âncoras de conteúdo definidas noel<strong>em</strong>ento referenciado e nos el<strong>em</strong>entos que o referenciam, e reportará todasas mudanças nas máquinas de estado de evento dessas interfaces a todosos elos associados a esses el<strong>em</strong>entos ;298

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

Saved successfully!

Ooh no, something went wrong!