I'm not sure how action script works, but the concept should be easy to translate.
The most important thing to consider with level editors is how to save map data for future use. You've made it pretty simple on yourself by using a tile based system. In this case, I would save the information related to the graphic of a tile(like x,y position on the image) in a list that closely resembles the tile array. For example:
for(int row = 0;row < 24;row++){
for(int col = 0; col < 32;col++){
save(tile[col][row].graphicX,tile[col][row].graphicY);
}
}
To load it, you would just have to have a load function instead of a save function. It'll be different with each language.
After that, you could save all enemy positions, like this:
for every enemy:
save it's type,x position, and y position
Once you have loading/ saving done, it should be simple to implement data manipulation. I would probably have a tile mode and enemy mode. For tile mode, this is probably how the code'll work:
when the mouse is clicked:
//These values will be your mouse's relative x and y position. I'll refer to them as relX and relY.
get the mouse x and y position, and divide them by 20, or whatever the tile width and height (respectively) will be.
//this will be whatever mode the user is in. for placement mode, this'll overwrite the old tile with the tile the user selected.
manipulate the data in tiles[relX][relY] according to the mode the user is in.
(you can also change the function depending on which button is pressed. The right mouse button makes a good delete button.)
For enemies, you might not need to use the relative coordinates, but you'll need to detect whether or not they will be in a tile.
In all honesty, the level editor is only going to be as complicated as the game it is being used for. If you use a Game Maker file, I have an (extremely old) project that had a simple level editor in it, but it isn't the best source to use. It might be worth a look, if you want it.