文件:“point_direction.as”
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 :(得分:0)
你在这里应该小心。类构造函数方法不应返回值,因为它实际上是返回自身。这就解释了为什么你收到了这条错误信息。
因此,请选择其他函数名称,请参阅以下示例
Public function calculate_point_dirction(x1:Number, ...):Number
{
// do staff
Return degreeAngle;
}
答案 1 :(得分: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)
答案 2 :(得分: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);