i'm not that much of an oop expert, but it seems to that the example code for MenuBar components are bad oop examples

flash mx 2004 documentation) Using Components -> Dictionaries -> MenuBar -> Using the Menubar Component
example code provided)
var listen = new Object();
listen.change = function(evt){
var menu = evt.menu;
var item = evt.menuItem
if (item == menu.newInstance){
myNew();
trace(item);
}else if (item == menu.openInstance){
myOpen()
trace(item);
}
}
menu.addEventListener("change",listen);



now let's look at the line var menu = evt.menu;
if you think about it, strict typing it to object would work
var menu:Object = evt.menu
but actually the correct thing to do in most languages to would to strict type it to the actual class it refers to like
import mx.controls.Menu;
var menu:Object = evt.menu:Menu

but that will cause an error because menu.newInstance, menu.openInstance are undefined
it should be using a function to check what item is selected not an attribute
isn't that like the basics of OOP???