2012-08-14 72 views
1

文件: 「point_direction.as」ActionScript 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; 
      } 
     } 
    } 

以上是我在遇到麻煩固定文件。我希望文件在完成後以度爲單位返回最終的計算角度,但會引發此錯誤。

第7,1130行:構造函數不能指定返回類型。
+0

如果你的問題已經解決,您應該接受的答案。 – BadFeelingAboutThis 2012-08-20 17:11:55

回答

0

你應該在這裏小心。一個類的構造函數方法不應該返回一個值,因爲它實際上是自己返回的。這解釋了爲什麼你得到了這個錯誤信息。

因此,選擇不同的功能名稱請看下面的例子

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

重命名該函數有幫助,然後我必須將其更改爲靜態以按照我的意圖使用它。 – Joban 2012-08-15 01:52:19

+0

快樂你管理:) accra答案然後;) – Future2020 2012-08-15 02:04:24

0

是按照預期的錯誤。構造函數是類的創建方法,因此它返回該類的實例 - 除了void之外,添加任何類型的返回類型都會拋出該錯誤。

看起來你可能想讓這個靜態函數?如果是的話這是你的包是什麼樣子(假設它是所有此功能):

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

如果你想在類point_direction的實例來表示訪問此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);