добрый день, очень надеюсь на вашу помощь.
Ситуация следующая: есть два класса Unit и Floor. каждый объект класса Floor добавляется конструтктором в статический массив этого класса.
Объект класса Unit каждый кадр обращается к функции класса Floor, которая пебирает все экзэмпляры Floor и проверяет пересекаются ли они одним из своих подобъектов(вложенные мувики) с объектом вызвавшим функцию(экземпляром Unit-а). все работало превосходно, но затем мне понадобилось добавить все объекты со сцены(экземпляры Unit и Floor) в отдельный муви клип.(map_mc предположим). после чего появилось обилие проблем с координатами( хотя поидеи я предусмотрел смещение сетки координат) и более того методы hitTestObject и hitTestPoint перестали работать.
приведу сокращенный код, думаю его хватит. если понадобится кину исхожник.
класс Unit

Код AS3:
package script_files
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Mouse;
import flash.events.MouseEvent;
import flash.display.Stage;
public class Unit extends MovieClip
{
//CONSTRUTOR
public function Unit()
{
addEventListener(Event.ENTER_FRAME, Behavior);
// constructor code
}
//BEHAVIOR main function, enter frame
private function Behavior(e:Event):void
{
this.x += speed_x;
this.y += speed_y;
Floor.collision(this);
}
}
}
класс Floor

Код AS3:
package script_files {
import flash.display.MovieClip;
public class Floor extends MovieClip
{
private static var FloorArr:Array = new Array();//статический массив флор
public function Floor()
{
Floor.FloorArr.push(this);//добавляем в массив каждый экземпляр
// constructor code
}
public static function collision(object:MovieClip)
{
for(var i=0;i< FloorArr.length; i++)//перебираем все экземпляры
{
//перебираем все подобъекты [i]-экземпляра
if( FloorArr[i].collider_up.hitTestPoint(object.x,object.y) && object.speed_y > 0)
{
//действия
}
if( FloorArr[i].collider_down.hitTestPoint(object.x,object.y - object.height) && object.speed_y < 0)
{
}
if( FloorArr[i].collider_left.hitTestObject(object) && object.speed_x > 0)
{
}
if( FloorArr[i].collider_right.hitTestObject(object) && object.speed_x < 0)
{
}
}
}
}
}