2012-08-14 4 views
1

파일 : "point_direction.as"액션 스크립트 3 오류 1130

 

    package { 
     public class point_direction { 

      var radianAngle:Number; 
      var degreeAngle:Number; 

      public function point_direction(x1:Number, y1:Number, x2:Number, y2:Number) : Number { 
       radianAngle = Math.atan2(y1 - y2, x1 - x2); 
       degreeAngle = radianAngle * 180/Math.PI(); 

       return degreeAngle; 
      } 
     } 
    } 

위 나는 문제 해결을 데 파일입니다. 파일을 완료했을 때 각도로 최종 계산 각도를 반환하고 싶지만이 오류가 발생합니다.

Line 7, 1130 : 생성자가 반환 형식을 지정할 수 없습니다.
+0

당신은 대답을 받아 들여야한다. – BadFeelingAboutThis

답변

0

여기에서주의해야합니다. 클래스 생성자 메서드는 실제로 자체를 반환 할 때 값을 반환하지 않아야합니다. 이것은 왜 그 오류 메시지가 있는지 설명합니다.

그래서 다른 함수 이름

Public function calculate_point_dirction(x1:Number, ...):Number 
{ 
// do staff 
Return degreeAngle; 
} 
+0

함수의 이름을 변경하면 도움이되었으므로 의도 한대로 사용하려면 정적으로 변경해야했습니다. – Joban

+0

해피 당신은 Managed :) accra 대답을 누른 다음;) – Future2020

0

가 귀하의 오류가 예상되는 다음 예를 참조를 선택합니다. 생성자는 클래스의 생성 메서드이므로 해당 클래스의 인스턴스를 반환합니다. void가 아닌 모든 반환 유형을 추가하면 해당 오류가 throw됩니다.

정적 함수로 만들려는 것처럼 보입니까? 당신이 표현하는 클래스 point_direction의 인스턴스를 원하는 경우

package { 
    public class point_direction { 

     public static function pointDirection(x1:Number, y1:Number, x2:Number, y2:Number):Number { 
      var radianAngle = Math.atan2(y1 - y2, x1 - x2); 
      var degreeAngle = radianAngle * 180/Math.PI(); 

      return degreeAngle; 
     } 
    } 
} 

당신이 point_direction.pointDirection(x1,y1,x2,y2)

0

를 호출하여이 액세스 것 : 그래서 여기에 패키지가 어떻게 보이는지 경우 (이 수행하는 모든 가정이 기능입니다) degreeAngle, 당신은이 작업을 수행 할 수 있습니다 (생성자의가 있다고 할 수 없기 때문에) 생성자는 아무것도 반환하지 않습니다

package 
{ 
    public class point_direction 
    { 

     private var _radianAngle:Number; 
     private var _degreeAngle:Number; 


     public function point_direction(x1:Number, y1:Number, x2:Number, y2:Number) 
     { 
      _radianAngle = Math.atan2(y1 - y2, x1 - x2); 
      _degreeAngle = radianAngle * 180/Math.PI(); 
     } 


     public function get degreeAngle():Number 
     { 
      return _degreeAngle; 
     } 
    } 
} 

공지 사항.

대신이 작업을 수행 할 수 있습니다 : 문제가 해결 된 경우

var dir:point_direction = new point_direction(0, 1, 2, 3); 
trace(dir.degreeAngle);