Отладка сбойного приложения Flash - PullRequest
2 голосов
/ 09 октября 2009

Каков наилучший способ отладки флеш-приложения CRASHING? (не исключение, мое приложение просто сбой) Я действительно столкнулся с большой проблемой: мое приложение (веб-сайт с полной флеш-памятью) работало нормально с flashplayer 9, но зависало с flashplayer 10 ...

Вот ПЛОХОЙ метод, который приводит к сбою моего приложения с FP10. После удаления вызова этого метода все работало правильно с 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();
        }

ОК, я наконец нашел настоящую ПРОБЛЕМУ ... это был не сам метод. Я передавал NaN для аргумента "A", вызывающего бесконечный цикл ...

1 Ответ

2 голосов
/ 09 октября 2009

Вы пытались запустить его с помощью отладчика? Установите точку останова на входе вашего приложения, а затем проходите через него, пока оно не выйдет из строя. Таким образом, вы можете увидеть, какая строка кода отвечает и состояние переменных. Конечно, реальной проблемой может быть что-то, что происходит раньше, но по крайней мере вы сузили свой поиск и можете проследить в обратном направлении.

Также еще один способ - добавить несколько операторов trace () в ваш код и посмотреть, попадет ли когда-нибудь раздел. Затем вы можете сказать, происходит ли это до или после, и повторять, пока не найдете проблемную область.

...