我有一个common.geometry
个包,其中有两个文件:calculateAngle
和normalizeAngle
。这些文件分别包含一个函数:
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
,但这似乎不起作用。我需要做什么才能将全局函数分组?
答案 0 :(得分:0)
import common.geometry.calculateAngle;
calculateAngle();
as normalizeAngle和calculateAngle位于同一位置,我们只从包中调用calculateAngle,无需导入normalizeAngle
修改强>
为了清晰起见,我修改了原始函数,删除了参数并用简单的trace
命令替换了主体。
normalizeAngle
来自calculateAngle
正确
答案 1 :(得分:0)
问题是对Hexagon
类的引用。它引起了我认为的循环引用。由于它是Hexagon的center
属性,因此我更改了参数以取代Point
个对象并且它正在工作。