Следующие два файла AS содержат статически доступные публичные методы.В Mouse.as операторы трассировки правильно печатают содержимое обоих вызовов getLocation (), который возвращает точку в пространстве (X, Y).
Однако при передаче значения из Mouse.as в HitTest.as target.getLocation () всегда печатает (0,0).Что происходит с экземпляром GameObject, когда он передается во второй класс, что приводит к потере его значения?
In GameObject
public function getLocation():Point2
{
return m_location;
}
In 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;
}