Ir para o conteúdo

 Voltar a Linguagem Lua
Tela cheia

problema com script lua para imagens

7 de Abril de 2012, 16:44 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 200 vezes

no meu código ncl, há o chamamento de um arquivo lua.

esse arquivo lua lê os nomes de slides (imagens) em um arquivo texto e os apresenta na tela, exatamente como no powerpoint.

pois bem, está dando um erro, pois a máquina virtual está travando e zerando quando é executado esse recurso.

 abaixo, o script do lua

 

local images = {}

local index = 0

for line in io.lines("slides.txt") do
    print(#images .. " - " .. line)
    table.insert(images, line)
end

return images
end


function moveImageIndex(images, index, forward)
  if forward then
       index = index + 1
       if index > #images then
          index = 1
       end
  else
       index = index - 1
       if index <= 0 then
          index = #images
       end;
  end
  return index
end





function showImage(images, index)
  if #images > 0 then


    img = canvas:new(images[index])

    canvas:compose(10, 10, img)

    canvas:flush()


  end
end



function handler(evt)
  print("Evento disparado: " .. evt.class .. " " .. evt.type)

  if (evt.class == 'key' and evt.type == 'press') then
      print(evt.key)
       if evt.key == "CURSOR_RIGHT" then
         index = moveImageIndex(images, index, true)
      elseif evt.key == "CURSOR_LEFT" then
         index = moveImageIndex(images, index, false)
      end

      showImage(images, index)
  elseif evt.class == "ncl" and evt.type=="presentation" and evt.action=="start" then
      autoForward()
  end
end

event.register(handler)




Autor: paulo machado


66 comentários

  • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
    7 de Abril de 2012, 22:59

     

    Oi Paulo,

    olhando bem rápido, parece que você tem um problema de sintaxe (pelo menos no código que você postou aqui). Veja se os comentários abaixo procedem...

     local images = {}

    local index = 0

    for line in io.lines("slides.txt") do
        print(#images .. " - " .. line)
        table.insert(images, line)
    end

    return images -- Isso daqui está certo ? seu script vai 
                               -- retornar aqui e nao vai fazer mais nada
                               -- (nem registrar o handler).
    end  -- Esse end está sobrando aqui..

    • 2b7c0d9da58f1b2d3ae89544ad052ae6?only path=false&size=50&d=404paulo machado(usuário não autenticado)
      8 de Abril de 2012, 8:36

       

      Roberto, em primeiro lugar, agradeço por sempre estar prestativo e disposto a ajudar.

       confesso que não tinha percebido essa colocação do return, nem o end adicional (com certeza, erro de digitação).

       vou eliminar e já volto aqui. 

      • 2b7c0d9da58f1b2d3ae89544ad052ae6?only path=false&size=50&d=404paulo machado(usuário não autenticado)
        8 de Abril de 2012, 12:07

         

        então, Roberto, eliminei o end e o return.

         

        agora, não mais resetou a máquina, mas também não apareceram os slides.

         

        vasculhando a máquina virtual, verifiquei a mensagem:

         LUAEVENT int_dispatch ERROR: attempt to call global 'autoForward' (a nil valor).

         coloquei em comentários (--) a linha do elseif evt.class == "ncl" and evt.type=="presentation" and evt.action=="start" then 

              autoForward() 
         

        o erro sumiu, e não encontrei nada, vasculhando. apenas apareceu:

        checkAnchorMonitor can't create TIMENominalEventMOnitor for -1...slides/dcSlides because next transition = 'inf'

        como é uma mensagem que aparece muito no Ginga, não sei se tem a ver.

        o código parece estar ok, a despeito do autoForward.

        tb eliminei a linha  print("Evento disparado: " .. evt.class .. " " .. evt.type) 

        não parece que vá fazer diferença. 

         

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