How it works...
The lengthy (yet abbreviated) code segment shows you how to implement a custom control
class. This is done by extending the Control class from which our control will inherit several
properties and behaviors. For our Deck control, let's explore how it works.
F Defining the control —the Deck class extends the Control class, which extends
CustomNode . As a matter of fact, creating a custom control works in the same way
as creating a custom node; you need override function create():Node to
return the control you want to create. In our code example, we return an instance of
Group as the container for our Deck class.
F Class properties —all public variables declared in the class definitions will be
treated as class properties. Our custom Deck control will expose the following
borderSize:Integer = 2;
duration:Duration = 300ms;
The class Deck will also inherit properties from the base class Control .
F The Deck.add() function —the Deck class exposes the Deck.add(node:Node)
function to add items to the stack (internally managed by an instance of Group
assigned to variable stack ). The function wraps the added node in a virtual card
for the deck by calling createCard() which basically returns a Group instance
containing the added node and a Rectangle instance as a background. The card
is then added to the content sequence of the deck's internal stack .