Debug Session e Bug com Flash Player 9

Ferramentas, Flash AS3 Adicione um comentário

Olá amigos.
Hoje venho comentar um bug no mínimo estranho usando versões de Flash Player 9 e Action Script 3.

O erro consiste em não conseguir identificar um objeto na timeline usando AS3.

O Rafael Pangrácio, um colega e guru foi quem comentou sobre esse erro – no mínimo bizarro – que acontece quando você trabalha a timeline com perfil para Flash Player 9.

Constatando o Erro:

  1. Abra um documento em branco do flash, escolha as3 e no perfil, escolha Flash Player 9.
  2. Desenhe um retângulo qualquer, tranforme em movieclip e instancie como quiser (eu nomeei de “conteudo”)
  3. Entre no movieclip e mova o retângulo do primeiro para o segundo frame, tranforme novamente em movieclip, instancie (eu usei “mymc”), então termos um movieclip com outro movieclip dentro no quadro 2.
  4. Voltando a raíz do palco, digite no painel de ações:
    conteudo.gotoAndStop(2);
    trace(conteudo.mymc);
    trace(conteudo.mymc.name);
  5. Observe o output

erro1

Erro no mínimo estranho, afinal estamos fazendo um processo simples, não poderia retornar esse erro.

Agora, sem alterar nada em actions nem nos movieclips, troque o perfil de exportação, escolha flash player 10. Como na figura abaixo:
fp10

Teste o Filme.
Observe o resultado no output agora:
output2
Veja que agora conseguimos retornar corretamente o objeto e o nome do objeto.

Realmente é um erro estranho e talvez seja apenas um dos indícios que nos levam a migrar nossos projetos o quanto antes para o Flash Player 10.

Observação importante:
Não testei esse problema no Flash CS3, então ainda não sei dizer se é isolado do CS4 ou se é problema com o Flash Player 9 mesmo, afinal o Flash CS3 não nos dá opção de exportar em Flash Player 10.
Se alguém puder – por favor – testar esse mesmo evento usando o Flash CS3 e reportar aqui, fico grato.

Debug Session
Quantas vezes você já se deparou com a seguinte mensagem de erro, que aponta o erro mas infelizmente não diz a linha em que esse erro acontece?

TypeError: Error #1010: Um termo é indefinido e não tem propriedades.
    at Untitled_fla::MainTimeline/frame1()

Ele diz que existe erro, diz que está no frame1, mas e a linha? É uma incógnita.
E o Flash tráz uma ferramenta nativa extremamente eficiente para informar a linha em que o erro acontece, é a “Debug Session”.
Uma vez iniciada ela debuga o filme todo informando os erros que acontecem e em que linha se encontram. A debug session não é ativada por padrão, para ativá-la, siga o menu “Debug” > “Begin Remote Debug Session” > “ActionScript 3.0″, como abaixo:
debugsession
Sua janela ficará um pouco diferente da janela comum de teste.
Após isto, teste seu filme usando – ao invés de “Ctrl+Enter” – “Ctrl + Shift + Enter”

Quando você testar o filme e ocorrer um erro, o flash apontará perfeitamente onde ocorreu esse erro, informando a timeline, objeto, o frame e o número da linha, como abaixo:
debugsession2
Repare na linha marcada, onde se lê “MainTimeline::frame1:3″, o debug indica exatamente a linha de código do script que gerou o erro.  E um pouco acima ele mostra o script sendo executado.

Esta tela está um pouco modificada para caber, mas uma tela com o preview completo da debug session pode ser vista clicando abaixo:
Clique para visualizar
Em resumo, é sempre bom estar atento às ferramentas nativas do flash, principalmente em questão de desenvolvimento, as vezes parece que estamos usando uma ferramenta com falhas, mas eu confesso que no meu caso muitas vezes é falta de aprofundar-me na mesma.

Espero que as dicas sejam úteis, fica aqui o agradecimento ao Rafael (Vaipi =*) pela dica e a vocês espero que gostem e que lhes sirva.

Abraço!

Um comentário para “Debug Session e Bug com Flash Player 9”

  1. Giovanni Silva Disse:

    Confirmado. :)

    Adobe Flash CS3 com ActionScript 3 e Flash Player 9:
    Dá o mesmo erro que você comentou.

    Adobe Flash CS3 com ActionScript 2 e Flash Player 9:
    Funciona corretamente (só que name vai para _name).

    Abraço. o/

Deixe um comentário

Spam protection by WP Captcha-Free

RSS Comentários RSS Log in