2

调试 CRASHING flash 应用程序的最佳方法是什么?(也不例外,我的应用程序崩溃了)我实际上面临一个大问题:我的应用程序(全闪存网站)在 flashplayer 9 上运行良好,但在 flashplayer 10 上崩溃......

这是使用 FP10 使我的应用程序崩溃的 BAD 方法。删除对该方法的调用后,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”参数,导致无限循环......

4

1 回答 1

2

你试过用调试器运行它吗?在您的应用程序入口处设置一个断点,然后单步执行它直到它崩溃。这样你就可以看到哪行代码负责以及变量的状态。当然,实际问题可能是之前发生的事情,但至少您已经缩小了搜索范围并且可以向后追溯。

另一种方法是在代码中放入一些 trace() 语句,看看该部分是否被命中。然后您可以判断它是在之前还是之后发生并重复,直到找到问题区域。

于 2009-10-09T10:07:28.670 回答