When implementing a custom event in a Flash or Flex application, most examples and articles I found on the web don't override the clone() method. This works probably in most simple cases, but as soon as you try to redispatch the event (by calling dispatchEvent(event) in a handler that is handling event), you can get a "Type Coercion Failed" error. It states that it cannot convert flash.events.Event to your custom event's type.
Why is this happening? When you redispatch an event , the EventDispatcher class calls the clone() method and dispatches the cloned copy of the event. If you don't override the method to return an instance of the custom event, the original Event.clone() method will be called and an object of type Event will be returned. Now if you have an event listener expecting an instance of the custom event, the error will occur as the Flash virtual machine doesn't know how to convert from Event to your custom event type.







Good tips, both by you and Florian
Since this can not be done - a new Event must be instanciated. In order to save time and redundant code, the smart programmer will override Event.clone():Event ;)