Actionscript 3错误1130

时间:2012-08-14 23:33:25

标签: actionscript-3 flash-cs6

文件:“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:构造函数不能指定返回类型。

3 个答案:

答案 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);