Evaluar si un punto esta dentro de un poligono es una operacion basica, pero eso yo no lo sabia. Hasta que llega el momento en que es necesario. Perdí bastante tiempo investigando al respecto, asi que ahora comparto con ustedes el resultado, por si puede ahorrarle tiempo a alguien. No detallaré la explicacion, les dejo un link al ejemplo funcionando, el codigo fuente.
Código para detectar colisiones de un punto sobre un poligono
Código :
private function insidePolygon(pointList:Array, p:Point):Boolean { var counter:int = 0; var i:int; var xinters:Number; var p1:PointTest; var p2:PointTest; var n:int = pointList.length; p1 = pointList[0]; for (i = 1; i <= n; i++) { p2 = pointList[i % n]; if (p.y > Math.min(p1.y, p2.y)) { if (p.y <= Math.max(p1.y, p2.y)) { if (p.x <= Math.max(p1.x, p2.x)) { if (p1.y != p2.y) { xinters = (p.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x; if (p1.x == p2.x || p.x <= xinters) counter++; } } } } p1 = p2; } if (counter % 2 == 0) { return(false); } else { return(true); } }