Strangely, a FileReference object declared as a local (function-scope) variable will fail to dispatch events. The file reference must be declared as a non-local persistent variable.

Note the following will fail:

The file dialog will open, but the select handler will never be called. If, however, the FileReference reference is created outside the function scope, the select event is dispatched normally:

At first, I thought this might have something to do with weakly-referenced listeners, but that’s not the case. Setting the weak reference argument to false in either handler assignment doesn’t make a difference. Also, using the same set up but instead of FileReference you pass a traditional EventDispatcher object (or a custom subclass of any EventDispatcher), events are dispatched normally. AFAICT, this is a bug.

I should note that I haven’t tested in this beyond CS3.