public Actor GetSynchronizedObject(float x, float y) { IIterator iter = NewIterator(); Actor tmp = (Actor)iter.Next(); if (tmp == null) { return(null); } int seq = tmp.GetLastPaintSeqNum(); int idx = 0; for (; iter.HasNext();) { Actor actor = (Actor)iter.Next(); if (actor.GetRectBox().Contains(x, y)) { int actorSeq = actor.GetLastPaintSeqNum(); if (actorSeq > seq) { tmp = actor; seq = actorSeq; } idx++; } } if (idx == 0) { if (tmp.GetRectBox().Contains(x, y)) { return(tmp); } else { return(null); } } return(tmp); }