According to the Flex documentation :

____
In an ActionScript file, when you define component events or other aspects of a component that affect more than a single property, you add the metadata tag outside the class definition so that the metadata is bound to the entire class, as the following example shows:


----
// Add the [Event] metadata tag outside of the class file. 
[Event(name="enableChange", type="flash.events.Event")] 
public class ModalText extends TextArea {

    ...

    // Define class properties/methods
    private var _enableTA:Boolean;

    // Add the [Inspectable] metadata tag before the individual property. 
    [Inspectable(defaultValue="false")] 
    public function set enableTA(val:Boolean):void {
        _enableTA = val;
        this.enabled = val;

        // Define event object, initialize it, then dispatch it. 
        var eventObj:Event = new Event("enableChange");
        dispatchEvent(eventObj);
    }
}
----
____

In this example, the "enableChange" event must be considered part of the API. Therefore, it should be strongly typed. 


== Noncompliant Code Example

----
[Event(name="enableChange")] 
public class ModalText extends TextArea {...}
----


== Compliant Solution

----
[Event(name="enableChange", type="flash.events.Event")] 
public class ModalText extends TextArea {...}
----


ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]
