Pergunta

Qual é a melhor maneira de depurar um aplicativo flash travando? (Sem exceção, meu aplicativo apenas falha) Estou realmente enfrentando um grande problema: meu aplicativo (site de flash completo) estava funcionando bem com o flashplayer 9, mas quebra com o flashplayer 10 ...

Aqui está o método ruim que trava meu aplicativo com FP10. Depois de remover a chamada para esse método, tudo estava funcionando corretamente com o FP10.

public static function drawWedgeCrown(g : Graphics,a : Number,r : Number,r2 : Number, n : Number, c : Number, t : Number) : void {
            var x : Number ;
            var y : Number;               
            g.beginFill(c, t);
            g.moveTo(r, 0);
            g.lineTo(r, 0);
            var teta : Number = 0;
            var dteta : Number = 2 * Math.PI / n;
            while(teta < a) {
                x = r * Math.cos(teta);
                y = -r * Math.sin(teta);
                g.lineTo(x, y);
                teta += dteta;
            }
            x = r * Math.cos(a);
            y = -r * Math.sin(a);
            g.lineTo(x, y);           
            x = r2 * Math.cos(a);
            y = -r2 * Math.sin(a);
            g.lineTo(x, y);
            teta = a;
            dteta = 2 * Math.PI / n;
            var cpt : int = 0;           
            while(teta > 0) {
                cpt++;
                x = r2 * Math.cos(teta);
                y = -r2 * Math.sin(teta);
                g.lineTo(x, y);                           
                teta -= dteta;
            }
            x = r2 * Math.cos(0);
            y = -r2 * Math.sin(0);
            g.lineTo(x, y);
            g.lineTo(r, 0);           
            g.endFill();
        }

Ok, eu finalmente encontrei o verdadeiro problema ... não era o método nele. Eu estava passando Nan para o argumento "A", causando um loop infinito ...

Foi útil?

Solução

Você já tentou executá -lo com o depurador? Defina um ponto de interrupção na entrada do seu aplicativo e entre ele até que ele traga. Dessa forma, você pode ver qual linha de código é responsável e o estado das variáveis. É claro que o problema real pode ser algo que acontece antes, mas pelo menos você reduziu sua pesquisa e pode rastrear para trás.

Também outra maneira é colocar algumas instruções Trace () em seu código e ver se a seção é atingida. Então você pode dizer se está acontecendo antes ou depois e repita até encontrar a área problemática.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top