Here's a little gotcha that hasn't been getting as much attention as I think it should and several people in different forums have had a tough time debugging this. Flash 8 has introduced some new reserved words which may break compatibility with older files once these are compiled to Flash 8. the words are 'move', 'draw' and 'load'.

Assume that you have a class which dispatches events called load, draw or move.

var myListener:Object = new Object()
myListener.load = function(evt) {
trace("loaded");
}
myListener.move= function(evt) {
trace("moved");
}
myListener.draw = function(evt) {
trace("drawn");
}
myObject.addEventListener("load",myListener);
myObject.addEventListener("move",myListener);
myObject.addEventListener("draw",myListener);

None of these event will fire once compiled as Flash 8. Instead you should rename your events to something like 'loaded', 'drawn' and 'moved'.

A closer look at mx.events.EventDispatcher reveals this:

// these events do not get called via backdoor because of name collisions with other methods
static var exceptions:Object = {move: 1, draw: 1, load:1};

I came across this problem when using Peldi's XMLManager class which is part of his FLVPlayer. The XMLManager simply stopped working in Flash 8 and it took some combined efforts to track down the root of the problem.

Thanks to Will Law and Frederic v. Bochmann for their help.