代码之家  ›  专栏  ›  技术社区  ›  OXMO456

调试崩溃的闪存应用程序

  •  2
  • OXMO456  · 技术社区  · 16 年前

    调试崩溃的Flash应用程序的最佳方法是什么?(没有例外,我的应用程序刚刚崩溃) 我实际上面临着一个大问题:我的应用程序(完整的flash网站)在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();
            }
    

    好吧,我最终发现了真正的问题…它本身并不是一种方法。 我把“A”的论点传给了NaN,导致了一个无限循环…

    1 回复  |  直到 15 年前
        1
  •  2
  •   Allan    16 年前

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

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