2009-10-09 2 views
2

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

Вот BAD метод, который разбил мое приложение с помощью 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», вызывающего бесконечный цикл ...

+0

Вы пробовали со стандартным debuggeur? чтобы увидеть, где именно вещь идет не так ... –

+0

да, но это не помогает ... потому что игрок разбился и ничего не случилось после ... – OXMO456

ответ

2

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

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

+0

спасибо, я установил точку останова, и я наконец нашел метод, который разбился flashplayer 10 – OXMO456

+0

@ oxmo456 просто из любопытства - какой был этот метод? – Amarghosh

+0

@Amarghosh я обновил вопрос ... – OXMO456