为什么包中的函数文件无法识别?

时间:2016-11-12 17:40:13

标签: actionscript-3

我有一个common.geometry个包,其中有两个文件:calculateAnglenormalizeAngle。这些文件分别包含一个函数:

package common.geometry {
import Graphics.Hexagon;

public function calculateAngle(hex1:Hexagon, hex2:Hexagon):Number {
    var diffY:Number = hex2.center.y - hex1.center.y;
    var diffX:Number = hex2.center.x - hex1.center.x;
    var radians:Number = Math.atan2(diffY, diffX);

    return normalizeAngle(radians * 180 / Math.PI);
}
}

和...

package common.geometry {

public function normalizeAngle(angle:Number):Number {
    if (angle < 0) {
        angle += 360;
    }

    if (angle > 360) {
        angle = angle % 360;
    }

    return angle;
}
}

修改
在我导入common.geometry.*其他源文件中,我调用calculateAngle源编译。但是在调用normalizeAngle的地方,我收到编译器错误:调用可能未定义的方法normalizeAngle

我尝试过明确导入common.geometry.normalizeAngle,但这似乎不起作用。我需要做什么才能将全局函数分组?

2 个答案:

答案 0 :(得分:0)

对我来说没问题:

import common.geometry.calculateAngle;
calculateAngle();

as normalizeAngle和calculateAngle位于同一位置,我们只从包中调用calculateAngle,无需导入normalizeAngle

修改

为了清晰起见,我修改了原始函数,删除了参数并用简单的trace命令替换了主体。 normalizeAngle来自calculateAngle正确

答案 1 :(得分:0)

问题是对Hexagon类的引用。它引起了我认为的循环引用。由于它是Hexagon的center属性,因此我更改了参数以取代Point个对象并且它正在工作。