문제

충돌하는 플래시 앱을 디버깅하는 가장 좋은 방법은 무엇입니까? (예외적으로, 내 응용 프로그램이 충돌합니다) 나는 큰 문제에 직면하고 있습니다 : 내 앱 (Full-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을지나 가고 있었다 ...

도움이 되었습니까?

해결책

디버거로 실행 해 보셨습니까? 앱 입력시 중단 점을 설정 한 다음 충돌 할 때까지 단계를 밟습니다. 이렇게하면 어떤 코드 라인이 책임이 있고 변수의 상태를 확인할 수 있습니다. 물론 실제 문제는 이전에 발생하는 일일 수 있지만 적어도 검색을 좁히고 뒤로 추적 할 수 있습니다.

또한 또 다른 방법은 코드에 약간의 Trace () 문을 넣고 섹션에 맞는지 확인하는 것입니다. 그런 다음 문제 영역을 찾을 때까지 전후에 발생하는지 알 수 있고 반복 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top