1

文件:“point_direction.as”

    包裹 {   
        公共类 point_direction {

            var radianAngle:数字;
            var degreeAngle:数字;

            公共函数 point_direction(x1:Number, y1:Number, x2:Number, y2:Number) : Number {
                radianAngle = Math.atan2(y1 - y2, x1 - x2);
                度角 = 弧度角 * 180 / Math.PI();

                返回度角;
            }
        }
    }

以上是我无法修复的文件。我希望文件在完成后返回最终计算的角度(以度为单位),但它会引发此错误。

第 7 行,第 1130 行:构造函数不能指定返回类型。
4

3 回答 3

0

你应该在这里小心。类构造函数方法不应返回值,因为它实际上是在返回自身。这解释了为什么您收到该错误消息。

所以选择一个不同的函数名看下面的例子

Public function calculate_point_dirction(x1:Number, ...):Number
{
 // do staff
 Return degreeAngle;
 }
于 2012-08-14T23:48:15.170 回答
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)

于 2012-08-14T23:48:29.577 回答
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);
于 2012-08-15T00:08:32.990 回答