Я предполагаю, что все эти блоки хранятся в массиве или векторе.Таким образом, вы можете проверить точку и перебрать все ваши блоки, чтобы проверить, какой блок находится в этой позиции.Пример:
//return type could be whatever the blocks are
private function getObjectUnderPoint(p:Point):Object{
for(var i:int = 0; i < blocks.length; i++){
//checks for the block at position p
if(blocks[i].x == p.x && blocks[i].y == p.y){
return block[i];
}
}
//return null if there is no block under point p
return null;
}
В вашем случае в определенной точке будет только один блок, поэтому вам не нужно возвращать массив блоков, но вы можете изменить его, если хотите.Кроме того, если у вас нет блоков, хранящихся в массиве или векторе, я настоятельно рекомендую вам это сделать.
Чтобы сделать это более общим, вы можете перейти к этапу функции.затем проверьте дочерние элементы этого этапа.
Пример:
private function getObjectUnderPoint(s:Stage, p:Point):Array{
var objects:Array = new Array();
for(var i:int = 0; i < s.numChildren; i++){
var obj:Object = s.getChildAt(i);
//checks for the objects at position p
if(obj.x == p.x && obj.y == p.y){
objects.push(obj);
}
}
return objects;
}
оператор if внутри функций также можно изменить, чтобы проверить, находится ли точка p внутри объектов, но в этом примеревозвращает только точечные местоположения точек.