Ir para o conteúdo

 Voltar a Linguagem NCL
Tela cheia

duration e by

23 de Janeiro de 2008, 14:00 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 19 vezes
Blz....na norma explica os valores para "duration" em segundos, mas quanto a "by" fica meio vago. Quais são seus valores possíveis e como a mudança de um traibuto pode ser linear ou passo a passo? Agradeço desde ja

Autor: andrey silva souza


2020 comentários

  • 2133593267bb9e231f3ef646fd94a27d?only path=false&size=50&d=404Romualdo Monteiro R. Costa(usuário não autenticado)
    23 de Janeiro de 2008, 22:10

     

    Conteúdo vazio.

  • 2133593267bb9e231f3ef646fd94a27d?only path=false&size=50&d=404Romualdo Monteiro R. Costa(usuário não autenticado)
    23 de Janeiro de 2008, 22:13

     

    Andrey,

    Como vc falou, o duration especifica o tempo em segundos para a mudança do valor de uma propriedade. Um exemplo poderia ser a mudança do posicionamento de uma região dado que um determinado evento ocorreu. Nesse caso, o duration define o tempo que será gasto entre a transição dos valores atuais do posicionamento da região para o novo posicionamento.
    Quem faz o cálculo dos valores de acordo com o tempo especificado pelo autor é a máquina de apresentação. Isso cria uma animação, uma vez que os valores são graduamente incrementados. A forma desse incremento pode ser linear ou discreta. Quanto by tem um valor (discreta), para o exemplo anterior da mudança de posição da região, a animação ainda poderia existir, mas nesse caso o usuário veria saltos no posicionamento da região até o valor final.

    Como sugestão, tem alguns exemplos no tutorial que vc poderia modificar colocando o duration e by para entender melhor.

    Romualdo. 

    • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
      24 de Janeiro de 2008, 13:57

       

      Grande Romualdo...la na norma é apresentado um valor="indefinitive" para "by" você esta disendo que os outros valores são "discreta e linear"? Isso não esta bem explicado la não até porque os valores de atributos são em ingles.

       

      Grato 

      • 2133593267bb9e231f3ef646fd94a27d?only path=false&size=50&d=404Romualdo Monteiro R. Costa(usuário não autenticado)
        24 de Janeiro de 2008, 14:28

         

        Oi,

        Discreta e linear são as formas como o incremento é realizado sobre a propriedade escolhida durante o tempo definido no duration.

        Linear = não usa o by (acho que tb pode colocar o by como indefinitive com vc falou)

        Discreto = coloca um número no by e o incremento vai ser em intervalos do número que vc colocou.

        Romualdo. 

         

        • 754d4402e67aee0305d1a29003710c1c?only path=false&size=50&d=404andrey silva souza(usuário não autenticado)
          25 de Janeiro de 2008, 14:13

           

          Vlw vo fazer alguns teste por aki

           

           

          Abrax 

        • D9aa3837fc09af9ed1d91e37da33e1dd?only path=false&size=50&d=404Ronaldo Cereda(usuário não autenticado)
          27 de Março de 2008, 14:29

           

          Oi,

          Alguém já conseguiu fazer funcionar o atributo "by"? Ou alguém saberia dizer (a norma não diz) qual a unidade de medida (segundos, pixels, metros etc) para os valores desse atributo?

          --ronaldo

           

           

           

          • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
            28 de Março de 2008, 11:41

             

            O duration e o by não estão contemplados AINDA pelo Ginga Emulator.

            Na implementação em C++ de laboratório ele já funciona. Presumo que a próxima versão que subir para o site vai incluir este suporte (muito em breve).

            Mas seu uso é fácil. Quando você atribui um novo valor para a posição de uma mídia, isso pode ser instantâneo (quando não se usa o duration e by) ou pode demorar algum tempo.

            Se usar o atributo "duration", ele vai indicar quanto tempo vai demorar para a mídia ser deslocada de sua posição inicial para sua nova posição (realizando uma animação desse deslocamento).

            Se usar o atributo "by", estará indicando quantos pixels por unidade de tempo vai estar deslocando a mídia.

            Abraços,
            Carlos

            • 3997f871fae2fc64c385e399f16a7836?only path=false&size=50&d=404Aline Manera(usuário não autenticado)
              28 de Março de 2008, 13:54

               

              Olá...

              será que alguém tem algum exemplo sobre animações (do tipo da exemplificada acima) e poderia passar o código?? Gostaria de vê-lo pois quero fazer uma aplicação que necessita desse recurso e não sei por onde começar. Quais conectores necessários e td mais.

              Agradeço desde já.

              Aline Manera

              • D9aa3837fc09af9ed1d91e37da33e1dd?only path=false&size=50&d=404Ronaldo Cereda(usuário não autenticado)
                31 de Março de 2008, 10:13

                 

                Oi Aline,

                Primeiro você tem que criar um conector que contenha os atributos de animação (duration e by) num elemento <simpleAction>, como nesse exemplo (com o duration):

                <causalConnector id="onKeySelectionSetdurN">

                <connectorParam name="keyCode"/>

                <connectorParam name="var"/>

                <simpleCondition role="onSelection" key="$keyCode"/>

                <simpleAction role="setdur" eventType="attribution" actionType="set" value="$var" duration="2.0" max="unbounded" qualifier="par"/>

                </causalConnector>

                Depois, o valor de uma propriedade de um nó de mídia pode ser alterado por um elo que utiliza esse conector. Por exemplo, um elo que altera o valor da propriedade "left" de uma figura quando se pressiona um determinado botão do controle remoto:

                <link xconnector="onKeySelectionSetdurN" id="link1">

                <bind component="Botao" role="onSelection">

                <bindParam name="keyCode" value="..."/>

                </bind>

                <bind component="Figura1" interface="left" role="setdur">

                <bindParam name="var" value="..."/>

                </bind>

                ...

                </link>

                Espero que ajude.

                --ronaldo

                • 3997f871fae2fc64c385e399f16a7836?only path=false&size=50&d=404Aline Manera(usuário não autenticado)
                  15 de Abril de 2008, 9:31

                   

                  Olá de novo pessoal !!

                  A respeito do deslocamento de imagens descrito acima, gostaria de dizer q eu fiz aqui e deu td certo.

                  Agora o problema eh outro. Estou desenvolvendo uma aplicação com deslocamento de imagens que representam silabas de uma determinada palavra. De acordo com a seleção das 'silabas' forma-se a palavra indicada. O problema é: como saber qdo foi a primeira, segunda, terceira e n-ésima seleção do usuário??!! De acordo a sua seleção a imagem deve ir para um determinado lugar na tela.

                  Vou dar um exemplo pra ver se o problema fica mais claro:

                  Tenho 5 'silabas' na apresentação inicial. A primeira 'silaba' selecionada pelo usuário deve ir para uma dada região. A segunda para outra. O problema é saber qual será a primeira (que pode ser qualquer uma).

                  Sendo em algo usando rule, mas nao sei como.

                  Se alguem tiver alguma solução...

                  PS: a aplicação deve ser em NCL puro.

                  Aline Manera

                  • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
                    15 de Abril de 2008, 12:23

                     

                    Parabéns! É uma aplicação interessante e explora muitos recursos da linguagem.

                    O que você precisa na verdade são elos com teste (assessment). Controlaria essa aplicação mais ou menos assim:

                    1) Usaria um nó settings para controlar qual é a sílaba atualmente sendo escolhida (1, 2, 3, etc) - chamarei isso de propriedade "silaba". Para salvar qual foi a primeira sílaba escolhida pelo usuário, usarei a propriedade silaba1; depois silaba2; e assim por diante até silaban.

                    2) Cada uma das n sílabas seria um nó de mídia com uma propriedade "selecionado" que inicialmente tem "false".

                    3) Agora sempre que selecionar uma dessas sílabas vou usar um elo com teste mais ou menos assim:

                    Quando:
                    - figuraSilaba1 for selecionada (onSelection);
                    - E a propriedade "silaba" do nó settings for igual a 1 (o que me diz para ONDE mover a sílaba);
                    - E a propriedade "selecionado" da figuraSilaba1 for igual a "false"
                    Faça:
                    - posicione figuraSilaba1 (usando um "set" na propriedade "bounds") na posição final da primeira sílaba usando "duration" para dar um efeito de animação;
                    - usando um outro "set", modifique a propriedade "silaba1" do nó settings para o valor da sílaba correspondentes à figuraSilaba1
                    - usando um outro "set", modifique a propriedade "selecionado" do nó de mídia figuraSilaba1 para true (garantindo que o usuário não pode mais escolher esse nó)

                    4) Agora um detalhe chato: acho que vai precisar de n^2 elos como o acima já que vai ter que ter n elos para cada n posições possíveis de sílabas. Dá para evitar isso com um GOT de propriedade mas tenho que pensar mais.

                    Sei que tem dúvidas. Estou a postos.

                    Carlos

                    • 3997f871fae2fc64c385e399f16a7836?only path=false&size=50&d=404Aline Manera(usuário não autenticado)
                      16 de Abril de 2008, 13:19

                       

                      Ola Carlos!

                      Entao, tenho duvidas sim, e muitas. 

                      Teoricamente eu entendi o que vc propos, mas ainda estou 'perdida'.

                      Por onde eu comeco?? Sera que pode disponibilizar um exemplo com apenas 2 objetos??

                      Eu nunca mexi com esses elos de assessment.

                      Se vc pode me ajudar mais um pouquinho fico mto grata.

                      Obrigada.

                      Aline Manera 

                      • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
                        16 de Abril de 2008, 15:43

                         

                        Olá Aline,

                        Bem que merecia começar outra trilha sobre sua aplicação ... é que acho o assunto bom demais para ficar perdido no final dessa trilha. De qualquer forma, vou continuar aqui para não fragmentar.

                        Você vai precisar do seguinte conector (não testei ... digitei direto aqui ... erros de sintaxe são possíveis) :

                        Vou comentar digitando ao lado:

                        <causalConnector id="onSelectionAttTestAttNotSelectedSetDur">
                         <connectorParam name="silabaParam"/> parametro para o numero da silaba = 1 a n
                         <connectorParam name="durParam"/> parametro para a duracao da atribuicao
                         <connectorParam name="varParam"/> parametro para o valor a ser redimensionado
                         <compoundCondition operator="and">
                          <simpleCondition role="onSelection"/> condicao do elo eh a selecao
                          <assessmentStatement comparator="eq"> assessment para comparar se o papel attTest igual ao parametro silabaParam
                           <attributeAssessment role="attTest" eventType="attribution" attributeType="nodeProperty"/>
                           <valueAssessment value="$silabaParam"/>
                             </assessmentStatement>
                           <assessmentStatement comparator="eq"> assessment para comparar se o papel attNotSelected eh igual ao valor false
                               <attributeAssessment role="attNotSelected" eventType="attribution" attributeType="nodeProperty"/>
                               <valueAssessment value="false"/>
                           </assessmentStatement>
                         </compoundCondition>
                         <simpleAction role="set" value="$varParam" duration="$durParam" max="unbounded"/> atribui o valor varParam com duracao de durParam
                        </causalConnector>

                        E agora o elo vai ser usado assim:

                        <link xconnector="onSelectionAttTestAttNotSelectedSetDur">
                            <bind role="onSelection" component="figuraSilaba1"/>
                            <bind role="attTest" component="nodeSettings" interface="silaba">
                                <bindParam name="silabaParam" value="1"/>
                            </bind>
                            <bind role="attNotSelected" component="figuraSilaba1" interface="selecionado"/>
                            <linkParam name="durParam" value="0s"/> o valor default do parametro durParam eh 0s
                            <bind role="set" component="figuraSilaba1" interface="bounds">
                                <bindParam name="varParam" value="..."/> aqui coloco a nova posicao no lugar de ...
                                <bindParam name="durParam" value="2s"/> coloquei 2s ... mude para oque achar melhor
                            </bind>
                            <bind role="set" component="nodeSettings" interface="silaba1">
                                   <bindParam name="varParam" value="1"/>
                            </bind>
                            <bind role="set" component="figuraSilaba1" interface="selecionado">
                                   <bindParam name="varParam" value="true"/>
                            </bind>
                        </link>

                        Continue contando comigo até que sua aplicação esteja terminada!

                        • 820d3515c25dc6c1319875ee4fed9224?only path=false&size=50&d=404Carlos de Salles Soares Neto(usuário não autenticado)
                          16 de Abril de 2008, 15:44

                           

                          Só reforçando: o conector e o elo postado na mensagem anterior equivalem EXATAMENTE ao que coloquei em português na postagem imediatamente anterior.

                          Leia ambos com base no meu texto que fica claro o que fiz.

                          • F6632e5d7daaad18e6e69b2b6fe94593?only path=false&size=50&d=404Mateus Sousa Dias(usuário não autenticado)
                            12 de Janeiro de 2010, 15:13

                             

                            Caros,

                            Encontrei um problema durante o desenvolvimento de uma apresentação.

                            O problema consiste basicamente no uso de animações. Estou tentando fazer com que a figura mova-se para o topo da tela gradualmente. Entretanto, a figura move-se instantaneamente. Não consigo descobrir a razão disso, e gostaria de uma ajudinha.

                            Abaixo o código que escrevi.

                            Abraços

                            <?xml version="1.0" encoding="ISO-8859-1"?>

                            <ncl id="red" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
                                <head>    
                                    
                                    <regionBase>
                                        <region id="fundo">
                                            <region id="fig" left="25%" width="50%" top="25%" height="50%"/>
                                        </region>
                                    </regionBase>
                                   
                                    <descriptorBase>
                                        <descriptor id="d_fig" region="fig" explicitDur="10s"/>
                                    </descriptorBase>
                               
                                <connectorBase>
                                    <causalConnector id="onEndStart">
                                         <simpleCondition role="onBegin" delay="3s"/>
                                        <simpleAction role="setdur" eventType="attribution" actionType="set" value="0" duration="5s" by="indefinite" max="unbounded" qualifier="par"/>        
                                    </causalConnector>
                                </connectorBase>
                               
                                </head>

                                <body>
                                   
                                    <port id="p_video" component="m_fig"/>
                                   
                                    <media id="m_fig" src="TV.png" descriptor="d_fig">
                                        <property name="top"/>
                                    </media>           
                                   
                                   
                                    <link id="redimensionar1" xconnector="onEndStart">
                                        <bind role="onBegin" component="m_fig"/>
                                        <bind role="setdur" component="m_fig" interface="top"/>
                                    </link>
                                   
                                </body>
                            </ncl>

                            • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
                              12 de Janeiro de 2010, 17:44

                               

                              Mateus,

                              tente fazer o seguinte:

                              1. Modifique o teu connector para esse:

                              <causalConnector id="onBeginSet">
                                   <connectorParam name="var"/>
                                   <connectorParam name="dur"/>
                                   <simpleCondition delay="3s" role="onBegin" />
                                   <simpleAction duration="5s" role="set" value="$var" />
                              </causalConnector>

                               

                              2. E modifique o link passando os parâmetros:

                              <link id="redimensionar1" xconnector="onBeginStart">
                                   <bind component="m_fig" role="onBegin"/>
                                        
                                   <bind component="m_fig" interface="top" role="set">
                                        <bindParam name="var" value="0"/>
                                        <bindParam name="dur" value="5s"/>
                                   </bind>
                              </link>

                               

                              Creio que actionType="set" não existe na Norma. o certo seria actionType="start", se não me engano!
                               

                              • F6632e5d7daaad18e6e69b2b6fe94593?only path=false&size=50&d=404Mateus Sousa Dias(usuário não autenticado)
                                13 de Janeiro de 2010, 11:27

                                 

                                Roberto,

                                 

                                Obrigado pela resposta.

                                Realizei as modificação que vc sugeriu, e aconteceu uma pequena mudança. A imagem se move apenas um pouco para cima, muito pouco mesmo. E só, fica parada depois disso.

                                No terminal obtive, entre outras, a seguinte mensagem:

                                FormatterScheduler::runActionOverProperty 'top_2' call setProp

                                Continuo na batalha aqui XD

                                 

                                Abraço

                                • F6632e5d7daaad18e6e69b2b6fe94593?only path=false&size=50&d=404Mateus Sousa Dias(usuário não autenticado)
                                  13 de Janeiro de 2010, 12:29

                                   

                                  Caros

                                   

                                  Consegui uma solução para meu problema XD

                                  O código escrito anteriormente estava correto, o detalhe está na atribuição dos valores de duration e by. No meu caso, para um valor de duration próximo de 5s, o valor de by deve ser bem pequeno, próximo de 0.5.

                                  Se alguém obtiver uma resposta diferente ou um quadro inesperado sobre isso, por favor poste.

                                   

                                  abraços a todos

                                  • F6632e5d7daaad18e6e69b2b6fe94593?only path=false&size=50&d=404Mateus Sousa Dias(usuário não autenticado)
                                    13 de Janeiro de 2010, 15:17

                                     

                                    Amigos,

                                    Mais uma vez surgiu um problema :(

                                    Como postei antes, consegui uma solução para meu problema. Entretanto, ao testar uma nova apresentação na nova versão do ginga, ocorreu um erro.

                                    Agora gostaria de começar com uma figura ocupando todo o espaço e, gradualmente, ter seu tamanho reduzido até que não seja mais visível.

                                    Abaixo o código

                                    <?xml version="1.0" encoding="ISO-8859-1"?>

                                    <ncl id="red" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
                                        <head>   
                                           
                                            <regionBase>
                                                <region id="fundo">
                                                    <region id="fig"/>
                                                </region>
                                            </regionBase>
                                          
                                            <descriptorBase>
                                                <descriptor id="d_fig" region="fig"/>
                                            </descriptorBase>
                                      
                                        <connectorBase>
                                                <causalConnector id="onBeginSet">
                                                 <connectorParam name="var"/>
                                                <connectorParam name="vDuration"/>
                                                <connectorParam name="vBy"/>
                                                <simpleCondition role="onBegin"/>
                                                <simpleAction role="set" value="$var" max="unbounded" duration="$vDuration" by="$vBy"/>        
                                                </causalConnector>
                                            </connectorBase>
                                      
                                        </head>

                                        <body>
                                          
                                            <port id="p_video" component="m_fig"/>
                                          
                                            <media id="m_fig" src="TV.png" descriptor="d_fig">
                                                <property name="bounds"/>
                                            </media>          
                                          
                                          
                                        <link id="redimensionar1" xconnector="onBeginSet">

                                            <bind component="m_fig" role="onBegin"/>
                                             
                                                 <bind component="m_fig" interface="bounds" role="set">
                                                      <bindParam name="var" value="50%,50%,0,0"/>
                                                <bindParam name="vDuration" value="5s"/>
                                                <bindParam name="vBy" value="indefinite"/>
                                                 </bind>

                                        </link>
                                          
                                        </body>
                                    </ncl>

                                     

                                    Mais uma vez, agradeço pela ajuda de todos.

                                    A batalha continua

                                     

                                    Abraços

                                    • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
                                      13 de Janeiro de 2010, 18:00

                                       

                                      Olá Matheus,

                                      aparentemente isso é um BUG na implementação. S vc colocar os valores de width e height igual a 100% na region inicial seu problema será resolvido!!

                                      Continue testando e "brincando" que assim podemos validar a implementação, ajudando-a a tornar-la mais robusta!

                                      Abraços!

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo