Ir para o conteúdo

 Voltar a Linguagem NCL
Tela cheia

Lua - eventos do teclado

19 de Maio de 2008, 22:21 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 81 vezes

Estou fazendo uma entrada de dados com lua, capturando eventos do teclado. Tenho 3 caixas para entrada de dados, e para cada uma: região+descritor+mídia lua.

Com o foco na primeira, seleciono "enter", e só aí os eventos são capturados pelo lua, para passar para a próxima caixa, tenho que selecionar "backspace" para sair do controle do lua, e depois "cursor_down".

 Existe alguma maneira de evitar o "enter" e o "backspace" ?

Autor: Hugo Cesar Crohare Lavalle


66 comentários

  • Fa8be082672b0f47e26ad5a87091961b?only path=false&size=50&d=404Hugo Cesar Crohare Lavalle(usuário não autenticado)
    19 de Maio de 2008, 23:16

     

    Econtrei a seguinte nota na norma (ABNTNBR15606-2_2007Vc_2008, página 58):

    "O controle do foco pode também ser passado alterando o valor do atributo service.currentKeyMaster do nó settings
    (elemento <media> do tipo application/x-ginga-settings). Isto pode ser feito via ação de um elo (<link> element), via um
    comando executado por um código imperativo de um nó (objeto NCLua ou NCLet), ou pelo exibidor do nó que detém o controle
    corrente."

    Seria esse o caminho ?

    • B84c5aed621335947af2d6faa786d885?only path=false&size=50&d=404Francisco Sant'Anna(usuário não autenticado)
      20 de Maio de 2008, 14:57

       

      Hugo,

      Dê uma olhada no terceiro exemplo do tutorial, que faz exatamente isso: 

      www.​tele​midi​a.pu​c-ri​o.br​/~fr​anci​sco/​nclu​a/tu​tori​al/e​xemp​lo3.​html

      abs,

      Francisco 

      • Fa8be082672b0f47e26ad5a87091961b?only path=false&size=50&d=404Hugo Cesar Crohare Lavalle(usuário não autenticado)
        20 de Maio de 2008, 20:40

         

        Francisco,

         Já havia executado esse exemplo antes, mas lembro que só havia conseguido depois de colocar o focusIndex no descritor do script lua, e de ter selecionado enter. Esse código do exemplo foi alterado recentemente ? Ou eu havia feito algo errado ? O fato é que agora o exemplo3 funcionou, obrigado !

        Testando na minha aplicação, onde tenho 3 mídias lua, fiz o seguinte:

        No primeiro, quando teclo CURSOR_DOWN, quero passar para o segundo:

         if evt.key == 'CURSOR_DOWN' then
                    event.post('out', { class='ncl', type='presentation', area='cursor_down', transition='starts' })
                    return
        end

        No ncl, tenho (mostrando só o que interessa...) :

        <descriptor id="dLua1" region="rgLua1" focusIndex="1"/>
        <descriptor id="dLua2" region="rgLua2" focusIndex="2"/>

        <media type="application/x-ginga-settings" id="programSettings">
                <property name="currentKeyMaster" value="1"/>
        </media>

        <media id="lua1" descriptor="dLua1" src="lua/script1.lua" type="application/x-ginga-NCLua">
                    <area id="cursor_down"/>
        </media>

        <media id="lua2" descriptor="dLua2" src="lua/script2.lua" type="application/x-ginga-NCLua"/>

        <link xconnector="onBeginSet">
                    <bind role="onBegin" component="lua1" interface="cursor_down"/>
                    <bind role="set" component="programSettings" interface="currentKeyMaster">
                      <bindParam name="var" value="2"/>
                      </bind>
              </link>
         

        Mas isso não funcionou. Está correto ? É possível alterar o currentKeyMaster no link ? Sei que no lua não é permitido.

         

        • Fa8be082672b0f47e26ad5a87091961b?only path=false&size=50&d=404Hugo Cesar Crohare Lavalle(usuário não autenticado)
          20 de Maio de 2008, 21:09

           

          Cometi um erro (que vira e mexe vem me perseguindo...). Estou importando a base de conectores e esqueci do alias (arghh!!)

          Bem, corrigido isso, no console deu o seguinte: "FormatterFocusManager::setCurrentKeyMaster cant  select '2'" 

          • Fa8be082672b0f47e26ad5a87091961b?only path=false&size=50&d=404Hugo Cesar Crohare Lavalle(usuário não autenticado)
            20 de Maio de 2008, 21:58

             

            Se bem que percebi que posso fazer as 3 caixas de texto no mesmo script lua, desehando as caixas com drawRect e mudando o Y do canvas.

            Portanto, uma solução eu já encontrei, mas continuo curioso quanto ao "FormatterFocusManager::setCurrentKeyMaster cant  select '2'" 

            • 201656b83337aa76f8a1de40ce226268?only path=false&size=50&d=404Günter Herweg(usuário não autenticado)
              25 de Junho de 2008, 10:55

               

              Talvez a resposta voce ja tenha, porem posto aqui para efeitos de consulta:

              A variavel de ambiente atual que guarda o valor do foco é "service.currentFocus", entao basta substituir a variavel "currentKeyMaster" pela "currentFocus" no nó <media> do Ncl.

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