Gracias por su ayuda.
adjunto el codigo.
Código ActionScript :
myMap1 = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; game = {tileW:80, tileH:80}; game.Tile0 = function () { }; game.Tile0.prototype.walkable = true; game.Tile0.prototype.frame = 1; game.Tile1 = function () { }; game.Tile1.prototype.walkable = false; game.Tile1.prototype.frame = 2; char = {xtile:1, ytile:15, speed:5, moving:false}; function buildMap(map) { _root.attachMovie("mouse", "mouse", 2); _root.attachMovie("empty", "tiles", 1); game.clip = _root.tiles; var mapWidth = map[0].length; var mapHeight = map.length; for (var i = 0; i<mapHeight; ++i) { for (var j = 0; j<mapWidth; ++j) { var name = "t_"+i+"_"+j; game[name] = new game["Tile"+map[i][j]](); game.clip.attachMovie("tile", name, i*100+j*2); game.clip[name]._x = (j*game.tileW); game.clip[name]._y = (i*game.tileH); game.clip[name].gotoAndStop(game[name].frame); } } game.clip.attachMovie("char", "char", 10000); char.clip = game.clip.char; char.x = (char.xtile*game.tileW)+game.tileW/2; char.y = (char.ytile*game.tileW)+game.tileW/2; char.clip._x = char.x; char.clip._y = char.y; char.clip.gotoAndStop(char.frame); } function moveChar(ob) { if ((ob.x-game.tileW/2)%game.tileW == 0 and (ob.y-game.tileH/2)%game.tileH == 0) { ob.xtile = Math.floor(ob.x/game.tileW); ob.ytile = Math.floor(ob.y/game.tileH); if (game["t_"+ob.ytile+"_"+(ob.xtile+1)].walkable and game.targetx>ob.xtile) { ob.dirx = 1; ob.diry = 0; //left } else if (game["t_"+ob.ytile+"_"+(ob.xtile-1)].walkable and game.targetx<ob.xtile) { ob.dirx = -1; ob.diry = 0; //up } else if (game["t_"+(ob.ytile+1)+"_"+ob.xtile].walkable and game.targety>ob.ytile) { ob.dirx = 0; ob.diry = 1; //down } else if (game["t_"+(ob.ytile-1)+"_"+ob.xtile].walkable and game.targety<ob.ytile) { ob.dirx = 0; ob.diry = -1; } else { ob.moving = false; return; } } ob.y += ob.speed*ob.diry; ob.x += ob.speed*ob.dirx; ob.clip._x = ob.x; ob.clip._y = ob.y; ob.clip.gotoAndStop(ob.dirx+ob.diry*2+3); } function getTarget() { if (game["t_"+game.ymouse+"_"+game.xmouse].walkable) { game.targetx = game.xmouse; game.targety = game.ymouse; char.moving = true; trace("cuadroY "+game.targety) trace("cuadroX "+game.targetx) trace("target | "+game.ymouse) trace("target - "+game.xmouse) trace(myMap1) } } function work() { game.xmouse = Math.round((_root._xmouse-game.tileW/2)/game.tileW); game.ymouse = Math.round((_root._ymouse-game.tileH/2)/game.tileH); _root.mouse._x = game.xmouse*game.tileW; _root.mouse._y = game.ymouse*game.tileH; var ob = char; if (!ob.moving) { ob.clip.char.gotoAndStop(1); } else { moveChar(ob); ob.clip.char.play(); } } buildMap(_root["myMap1"]); stop();