Hey there!
Whoops - added confusion is not the goal
Maybe a different way to approach it would be to be more specific about what you're trying to achieve. Do you want to add event listeners to buttons? To functions? Can you explain a little more the problem you're tackling?
As a general overview, in AS3 you add event listeners whenever you want to track if some sort of event has happened and then have the program do something in response. For example, if you want to have the function "loadContent1()" get triggered whenever someone has clicked "button1", you would add the following code:
button1.addEventListener(MouseEvent.CLICK, loadContent1);
function loadContent1():void
{
//Function info goes here
}
AS3 has events for pretty much everything: all the mouse behaviors (roll over, roll out, click, move, etc.), generic events (load, complete, etc.), and events specific to certain classes (data loading events, sound events, etc.). And if Flash's native events aren't enough, you can even add custom events if you like using the Event class.
The IEventDispatcher class is an INTERFACE, which you only will use in situations when you can't extend the EventDispatcher class (for example, if the class you're building is already extending another class). This all involves a deeper layer of complexity, so to avoid confusion, you should probably ignore the IEventDispatcher class for now and count on using the simple "addEventListener([event.event_type], [function])"
So to recap: Ignore IEventDispatcher for now, and focus on adding event listeners via "addEventListener([event.event_type], [function])", which you will use for most any scenario where you want to trigger a function if some sort of action/event takes place.
Best,
--eric