Adding Custom Properties and Events
When creating components, you will often want to declare some sort of public API. It is typically advisable that you create properties rather than methods with components. Doing so will allow component properties to be set more naturally within MXML as attributes, because methods are not declaratively called within MXML.
You create a public property in a custom component by creating a
getter/setter. For the StatusIcon
component, one feature you might want to have is the ability to set the
status of the component. The status could be a public property that you
can set and whose value you could retrieve. Also, the property should be
bindable. To create the property you first declare the getter/setter
function and make it bindable via [Bindable] metadata:
public static const STATUS_AVAILABLE:String = "available";
public static const STATUS_BUSY:String = "busy";
public static const STATUS_IDLE:String = "idle";
private var _status:String;
private var statusChanged:Boolean = false;
[Bindable]
public function set status(value:String):void
{
_status = value;
statusChanged = true;
invalidateProperties();
}
public function get status():String
{
return _status;
}Next, you will need to update the commitProperties() method to support the new
property. You first declare public constant values for the different values that the setter supports. Although ActionScript 3 does not support enumerations, declaring public properties for valid values is a good practice ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access