SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The first book to completely demystify leading-edge component
development with the Adobe Flex 3 platform
° How to build components for Flex and AIR applications using ActionScript 3.0 and
Adobe's powerful MXML user interface markup language
° Covers expert techniques most books ignore, including component metadata, error
handling, documentation, and creating Flex components in Flash using the Flex
Component Kit
° By Mike Jones, world-renowned Flex development consultant and speaker
Summary
Adobe Flex 3 offers a powerful new framework that web developers can use to
quickly produce richer, more immersive, higher-value solutions. To help
developers build the most powerful next-generation web applications, Adobe
structured the Flex framework around components, and allowed developers to
extend Flex's capabilities with their own components. However, few Flex
developers know how to create these custom components. Developing Flex
Components is the first book to completely demystify that process.
Renowned Flex developer and speaker Mike Jones begins by presenting a quick
overview of Flex and Flex Builder aimed at ActionScript 3.0 Flash developers.
Jones explains the anatomy of a Flex component, including both visual and
non-visual components, and introduces the components that come with the
Flex framework. Next, one step at a time, he walks through building new Flex
components that leverage the platform's powerful capabilities and can be
incorporated into both Flex and AIR applications. Jones covers topics that are
rarely addressed in Flex books, including component metadata, events and
error handling, data binding, skinning, styling, and creating Flex components in
Flash using the Flex Component Kit. He also presents a full chapter on writing
and maintaining component documentation, as well as an appendix of
additional resources for Flex component developers.
Developing Flex 4 Components: Anatomy of a Component
Preface xvii
PART I: OVERVIEW AND INSTALLATION
Chapter 1 Getting Started 3
Flex 3
What Is Flex? 4
Flex SDK 4
Flex Development Versus Flash Authoring 5
Flash Builder Has No Drawing Tools or Timeline 5
Flex SWFs Are Massive 6
Flash Builder Has No Symbol Library 6
Flash Builder 6
What Does This Actually Mean to You? 7
Wrapping the Flex SDK 7
Installing Flash Builder 7
Downloading Flash Builder 8
Starting the Installation of Flash Builder 8
Launching Flash Builder 12
Creating Your First Project 12
Summary 16
Chapter 2 The Flex 4 Components 17
Components: A Potted History 17
Using Flex Components 19
Component Family Tree 20
Control Components 23
Navigator Components 31
Layout Components 34
Charting Components 37
AIR-Specific Components 37
Summary 39
Chapter 3 Anatomy of a Component 41
Component Life Cycle 41
Understanding the Structure 43
Component Constructor 44
Inherit, Composite, or Rolling Your Own 51
UIComponent 51
Something for Nothing 52
UIComponent for MXML 53
IMXMLObject 55
Template Components 56
Deferring Instantiation 56
Summary 60
PART II: DEVELOPING COMPONENTS
Chapter 4 Creating Your First Component 63
MyFirstComponent 63
Creating the Class 65
Core Component Methods 66
Adding Some Form 66
Showing Yourself Off 68
Testing It Out 69
This Belongs to Me 70
Sibling Rivalry 73
MyFirstComponent (Revised) 74
Distilling MyFirstComponent (Halo) 74
Slimming Down with MXML (Halo) 76
Distilling MyFirstComponent Down (Spark) 80
Weapon of Choice 82
Summary 82
Chapter 5 Managing States 83
What Are States? 83
Flex’s View States 84
Creating States in MXML 86
Assigning States 87
stateGroups 87
Working with States in ActionScript 90
Overrides 91
Creating and Destroying View States 98
Adding States to Components 101
Worth Noting 103
Summary 103
Chapter 6 Effects and Transitions 105
Effects 105
Effect Types 105
Working with Effects 111
Declaring Effects 111
Triggering Effects 111
Orchestrating Effects 114
Working with MotionPath and Keyframe 117
Transitions 119
Summary 123
Chapter 7 Working with Metadata 125
What Is Metadata? 125
How Do I Use Metadata? 126
Working with Metadata 128
Exposing Information About Your Component 128
Describing Events 131
Exposing Styles and Effects 132
Embedding Assets 133
Binding Data 134
Setting Defaults 135
Working with Skins 137
Excluding Component Attributes 138
Altering and Deprecating Properties and Classes 139
Providing an Icon 140
And the Rest 140
Metadata in MXML 140
Creating Your Own Metadata Tags 141
Are Metadata Tags Classes? 141
Summary 145
Chapter 8 Events and Event Handling 147
Why Events? 147
Subscribers Versus Watchers 147
Asynchronicity 148
Event Flow 148
Dispatching Events 150
Adding Event Listeners 152
Custom Events 152
Extending the Event Class 153
Cloning Events 154
Dealing with Event Priority 155
Event Priority Constants 155
Countering Events 156
Event Propagation 157
Prevent Defaults 158
Summary 159
Chapter 9 Manipulating Data 161
Defining Component Data 161
Data Providers 161
KISS 162
Managing Data 163
Collections 165
Displaying Data 177
Data Renderers 177
Rendering the UI 178
Linking itemRenders to External Data 178
Summary 185
Chapter 10 Skinning and Styling 187
Spark Versus Halo 187
Spark Skin Life Cycle 187
Where Do I Start? 189
Working with SkinnableComponent 189
partAdded(), partRemoved() 189
getCurrentSkinState() 192
Creating Component Skins 193
FXG and MXMLG 194
Creating a Component Skin 194
Drawing Nonlinear Content 198
Spark Skins and Halo Components 200
Working with Properties and Styles 202
Using CSS 202
Custom Namespaces 202
Descendant Selectors 203
ID Selectors 204
Pseudo Selectors 204
Summary 205
Chapter 11 Creating Flex Components with Flash Professional CS5 207
Picking a Starting Point 207
Starting with Flash Professional 207
Starting with Flash Builder 4 209
Implementing States 212
Implementing Transitions 213
Controlling Component Resizing 215
Bounding Boxes 216
External Manipulation 216
Creating Component Visual Assets 218
Putting It All Together 219
Adding the Transition Animations 220
Properties and Methods 220
Metadata 221
Events 222
Externalizing Component Classes 223
Container Components 226
Summary 227
PART III: DISTRIBUTION
Chapter 12 The Flex Library Project 231
Packaging Your Component 231
SWC Format 231
library.swf 232
catalog.xml 232
Locale 233
Assets 234
Working with the Flex Library Project 234
Creating a Flex Library Project 234
What If It All Goes Wrong 242
compc 242
Summary 243
Chapter 13 Component Integration in Flash Builder 4 245
Why Integrate with Flash Builder? 245
What Can I Integrate With? 246
Panel Integration 246
Design View Extensions 253
Live Previews 261
Setting Default Styles 262
Summary 263
Chapter 14 Documentation 265
Why Should I Document Code? 265
Last to the Party, First to Leave 265
Documentation Is Boring 266
My Code Is Easy to Read 266
OK I Get It, Enough Already 266
Commenting Your Code 266
Basic Comment Types 267
ASDoc Comment Blocks 267
ASDoc Tags 268
HTML Formatting 272
Special Characters 273
Metadata Comments 274
Documenting MXML 274
Bypassing Documentation 275
Generating Your Documentation 276
Command-Line Document Generation 276
Generating Documentation in Flash Builder 277
Getting to Grips with Ant 281
Summary 288
Appendix A Flex Resources 291
Blogs 291
Adobe Blogs 291
Independent Blogs 292
Resource Sites 292
Frameworks 293
Useful Tools and Extensions 293
Adobe Tools 294
Third-Party Tools 294
Logwatcher 294
Regular Expression Tools 294
Index 295