I appreciate the help. It being the work week, I didn’t get a chance to really put some time into any solution and I definitely am not going to post the embarassing hack I was attempting.
I did get a plug and play solution involving some math equations that are quite a bit beyond me that I will post for anyone running into the same situation. It works great!
dawsonk
Maybe try something like this…
var tileW = 64;
var tileH = 32;
var rows = 8;
var cols = 4;
for (var i = 0; i < rows; ++i) {
for (var j = 0; j < cols; ++j) {
tTile = _root.attachMovie("Tile", "R" + i + "C" + j, _root.getNextHighestDepth());
tTile._x = (tileW * j) + ((i % 2 == 1) ? 32 : 0);
tTile._y = (tileH / 2) * i;
}
}
onMouseDown = function () {
var ax, ay, bx, by;
var cx = _xmouse;
var cy = _ymouse;
var posX = (_xmouse / 32) >> 0;
var posY = (_ymouse / 16) >> 0;
if ((posX % 2) == (posY % 2)) {
ax = (posX) * 32;
ay = (posY + 1) * 16;
bx = (posX + 1) * 32;
by = (posY) * 16;
if (getPos(ax, ay, bx, by, cx, cy) < 0) {
trace(((posY / 1 >> 0) - 1) + " : " + ((posX / 2 >>0) + ((((posY / 1 >> 0) - 1) % 2 == 0) ? 0 : -1)));
} else {
trace((posY / 1 >> 0) + " : " + (posX / 2 >> 0));
}
} else {
ax = (posX) * 32;
ay = (posY) * 16;
bx = (posX + 1) * 32;
by = (posY + 1) * 16;
if (getPos(ax, ay, bx, by, cx, cy) < 0) {
trace(((posY / 1 >> 0) - 1) + " : " + (posX / 2 >>0));
} else {
trace((posY / 1 >> 0) + " : " + ((posX / 2 >> 0) +((((posY / 1 >> 0) - 1) % 2 == 0) ? -1 : 0)));
}
}
};
function getPos($ax, $ay, $bx, $by, $cx, $cy) {
// below = 1, above = -1, on = 0;
var slope = ($by - $ay) / ($bx - $ax);
var yIntercept = $ay - $ax * slope;
var cSolution = (slope * $cx) + yIntercept;
if (slope != 0) {
if ($cy > cSolution) {
return $bx > $ax ? 1 : -1;
}
if ($cy < cSolution) {
return $bx > $ax ? -1 : 1;
}
return 0;
}
return 0;
}