Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 调试崩溃的Flash应用程序_Actionscript 3_Flash_Flashplayer 10_Flashplayer 9 - Fatal编程技术网

Actionscript 3 调试崩溃的Flash应用程序

Actionscript 3 调试崩溃的Flash应用程序,actionscript-3,flash,flashplayer-10,flashplayer-9,Actionscript 3,Flash,Flashplayer 10,Flashplayer 9,调试崩溃的flash应用程序的最佳方法是什么?(没有例外,我的应用程序只是崩溃了) 我实际上面临着一个大问题:我的应用程序(完整flash网站)在flashplayer 9上运行良好,但在flashplayer 10上崩溃了 下面是用FP10使我的应用程序崩溃的坏方法。 删除对该方法的调用后,FP10的所有功能都正常工作 public static function drawWedgeCrown(g : Graphics,a : Number,r : Number,r2 : Number, n

调试崩溃的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();
        }
公共静态函数drawWedgeCrown(g:Graphics,a:Number,r:Number,r2:Number,n:Number,c:Number,t:Number):无效{
变量x:数字;
变量y:数字;
g、 beginll(c,t);
g、 moveTo(r,0);
g、 lineTo(r,0);
var teta:数值=0;
变量dteta:Number=2*Math.PI/n;
while(teta0){
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”参数,导致无限循环…

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


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

您是否尝试过标准调试程序?看看到底哪里出了问题…是的,但这无助于。。。因为播放器崩溃了,之后什么也没发生…谢谢,我设置了一个断点,我终于找到了使flashplayer崩溃的方法10@oxmo456只是出于好奇——那是什么方法?