In this exercise, you will create an ActionScript class and use instances of the class to populate employee data, as shown in Figure 1.

Figure 1. Create an ActionScript class.
In this exercise, you will learn how to:
In order to complete this tutorial, you need the following software and files:
In this section you will create an ActionScript class.
Name the class Employee (see Figure 2).

Figure 2. Name the new class Employee.
Within the class
declaration, create three public variables named imageFile, firstName and lastName, all data typed to the String class.
public class Employee
{
public var imageFile:String;
public var firstName:String;
public var lastName:String;
...
To the constructor, accept
three parameters, fileName, fName, and lName. Type all
three parameters to the String class.
public function Employee(fileName:String, fName:String,
lName:String)
{
}
Assign each of the constructor arguments to its associated class property:
public function Employee(fileName:String, fName:String,
lName:String)
{
imageFile = fileName;
firstName = fName;
lastName = lName;
}
In this section, you will create multiple employee instances with ActionScript.
Below the Script comment, create a Script block.
<!-- Script
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<fx:Script>
<![CDATA[
]]>
</fx:Script>
Create a private variable named firstEmployee and use code lookup to data type the variable
to the Employee class (see Figure 2).

Figure 3. Use code lookup to define the data class of the firstEmployee variable.
Within the Script block, ensure the components.Employee package was imported. If
not, add the following code to import the package.
<fx:Script>
<![CDATA[
import components.Employee;
private var firstEmployee:Employee
]]>
</fx:Script>
Assign the firstEmployee variable to a new instance of the Employee class component.
private var firstEmployee:Employee =new Employee;
Pass the new Employee class component a fileName parameter of abrilliam.jpg, a fName parameter of Andrew and an lName parameter of Brilliam.
private var firstEmployee:Employee = new Employee
("abrilliam.jpg","Andrew","Brilliam");
Create another private variable named secondEmployee with a data typed to the Employee class.
private var firstEmployee:Employee = new Employee
("abrilliam.jpg","Andrew","Brilliam");
private var secondEmployee:Employee
Assign the secondEmployee variable to a new instance of the Employee class component, passing a fileName parameter of akotter.jpg, a fName parameter of Annette and an lName parameter of Kotter.
private var secondEmployee:Employee = new Employee
("akotter.jpg","Annette","Kotter");
EmployeeDisplay component instance. Assign firstEmployee.imageFile to the
first component's imageFile property as a bindable value.
<components:EmployeeDisplay imageFile="{firstEmployee.imageFile}"
fullName="Andrew Brilliam"/>
Save the file.
You should see two binding warnings in the Problems view (see Figure 4).

Figure 4. Save the file and view the warnings.
Make the firstEmployee and secondEmployee variables bindable by adding the Bindable keyword in brackets.
[Bindable]
private var firstEmployee:Employee = new Employee
("abrilliam.jpg","Andrew","Brilliam");
[Bindable]
private var secondEmployee:Employee = new Employee
("akotter.jpg","Annette","Kotter");
Save the file.
You should see the binding warning still exists for the imageFile variable (see Figure 5).

Figure 5. Save the file and view the warning.
Add the Bindable declaration to
the imageFile variable.
[Bindable] public var imageFile:String;
Open the Problems view.
You should see the warnings no longer exists.
To the second custom component tag's imageFile property, add the secondEmployee.imageFile bindable value.
<components:EmployeeDisplay_ex09 x="0" y="112"
imageFile="{secondEmployee.imageFile}"
fullName="Annette Kotter"/>
In this section you will bind the components to the employee instances.
Script block, locate and delete the two bindable variables. Below the import
statements comment, import the Employee class
component.
// import statements ---------------------------------------- import components.Employee;
Below the variable
declarations comment, declare a Bindable
public variable named employeeData and, using code lookup, assign the variable
a data type of the Employee class.
// variable declarations ------------------------------------ [Bindable] public var employeeData:Employee;
Image control tag. Update the source property's binding to display the info from the employeeData variable.
<mx:Image source="images/{employeeData.imageFile}" />
Locate the Label control and delete the value of the text property.
<s:Label x="0" y="80" text=""/>
Save the file.
Note: You will see four errors populate the Problems view. You will fix these next.
From
the first component tag, remove the imageFile and fullName properties.
<components:EmployeeDisplay x="10" y="41"/>
Add
the employeeData property and bind it to the value
of the firstEmployee variable.
<components:EmployeeDisplay x="10" y="41"
employeeData="{firstEmployee}"/>
Repeat steps 10 and 11 for the second component tag.
<components:EmployeeDisplay x="105" y="41"
employeeData="{secondEmployee}"/>
Your application should appear as shown in Figure 6.

Figure 6. Run the application.
In this section, you will create a class method to display an employee's names.
Below the Employee() method, create a new method named createFullName that takes no
parameters and returns data typed to the String class.
...
this.lastName = lName;
}
public function createFullName():String
{
}
Within the method, return
the firstName variable and the lastName variable with a space between them.
public function createFullName():String
{
return firstName + " " + lastName;
}
In this section you reuse the createFullName() function to dynamically display the employee name below the Image control.
Label control. Bind the text property to the employeeData variable evaluated by the createFullName() function.
<s:Label x="10" y="92"
text="{employeeData.createFullName()}"/>
You should see the components now display the employee's names, as shown in Figure 7.

Figure 7. View the application with employee names.
In this tutorial you learned how to create an ActionScript class and use instances of it to display data.
Trilemetry, Inc is a development and education organization that implements a human-centered design approach to the creation of software and content. Their Adobe portfolio includes the Adobe ColdFusion Getting Started Experience, the Adobe Flex Getting Started Experience, the Flex in a Week video series, the official Adobe instructor-led training course Flex 3: Extending and Styling Components and more. They also create and support many Web applications from interactive Flash sites and corporate web sites to mission-critical business applications.