Actionscript 3 调试崩溃的Flash应用程序
调试崩溃的flash应用程序的最佳方法是什么?(没有例外,我的应用程序只是崩溃了) 我实际上面临着一个大问题:我的应用程序(完整flash网站)在flashplayer 9上运行良好,但在flashplayer 10上崩溃了 下面是用FP10使我的应用程序崩溃的坏方法。 删除对该方法的调用后,FP10的所有功能都正常工作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
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只是出于好奇——那是什么方法?