1

ファイル: "point_direction.as"

    パッケージ {   
        public class point_direction {

            var radianAngle:数値;
            var degreeAngle:数値;

            public function 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

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 に答える
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 に答える