以下两个AS文件包含静态可用的公共方法。在Mouse.as中,trace语句正确地打印两个调用getLocation()的内容,getLocation()返回空间中的Point(X,Y)。
但是,将Mouse.as中的值传递给HitTest.as时,target.getLocation()始终打印(0,0)。 GameObject实例传入第二个类会导致它失去值时会发生什么?
在GameObject中
public function getLocation():Point2
{
return m_location;
}
在Block(扩展GameObject)
if (Mouse.isPressing(this))
{
reset();
}
鼠标
public static function isPressing(target:GameObject):Boolean
{
trace("T1: " + target.getLocation());
trace("M1: " + location);
return isDown() && HitTest.containsPoint(target, Mouse.getLocation());
}
在HitTest中
public static function containsPoint(target:GameObject, location:Point2):Boolean
{
trace("T2: " + target.getLocation());
trace("M2: " + location);
return target.getLocation().GridX == location.GridX && target.getLocation().GridY == location.GridY;
}