SlideShare une entreprise Scribd logo
1  sur  38
Building and Architecting Flex Applications ,[object Object],[object Object]
About myself ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why am I doing this session? ,[object Object],[object Object],[object Object],[object Object]
What we will cover ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Initial Phase
Design Decisions ,[object Object],[object Object],[object Object],[object Object],[object Object]
Design Decisions ,[object Object],[object Object],[object Object]
Cube ,[object Object],[object Object],[object Object]
AIR Specific Capabilities ,[object Object],[object Object],[object Object],[object Object],[object Object]
Architecture
Architecture Overview – No cool name for it yet ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Simple Architecture ,[object Object]
Overview MODEL CONTROLLER VIEW M: Databinding of data objects M: events, databinding, responders C: Call methods and properties C: Set dataprovider Call methods/properties Change states Change views V: Dispatch events
Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overview MODEL CONTROLLER VIEW M: Databinding of data objects M: events, databinding, responders C: Call methods and properties C: Set dataprovider Call methods/properties Change states Change views V: Dispatch events
Controller ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Overview MODEL CONTROLLER VIEW M: Databinding of data objects M: events, databinding, responders C: Call methods and properties C: Set dataprovider Call methods/properties Change states Change views V: Dispatch events
Views ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Controls ,[object Object],[object Object],[object Object]
Application Components
What Are Application Components?
What Are Application Components?
Cheat Sheet ,[object Object],[object Object],[object Object],[object Object],[object Object]
Setting Up The Component ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],package  com.rewindlife.views { import  mx.containers.Canvas; public   class  ContactDetails  extends  Canvas { } } <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Canvas xmlns:mx=&quot; http://www.adobe.com/2006/mxml &quot;> </mx:Canvas>
Think Of MXML Components Like Full Applications
Adding Sub-Components & Handling Layout <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Canvas xmlns:mx=&quot; http://www.adobe.com/2006/mxml &quot; width=&quot;100%&quot; backgroundColor=&quot;#f8f8f8&quot; height=&quot;100%&quot;> <mx:Label id=&quot;contactName&quot; x=&quot;10&quot; y=&quot;10&quot; text=&quot;John Doe&quot;/> <mx:Label x=&quot;62&quot; y=&quot;42&quot; text=&quot;phone&quot;/> <mx:Label x=&quot;53&quot; y=&quot;94&quot; text=&quot;address&quot;/> <mx:Label x=&quot;66&quot; y=&quot;68&quot; text=&quot;email&quot;/> <mx:TextArea x=&quot;110&quot; y=&quot;93&quot; editable=&quot;false&quot; enabled=&quot;true&quot; width=&quot;160&quot; height=&quot;63&quot; id=&quot;address&quot;/> <mx:TextInput x=&quot;110&quot; y=&quot;40&quot; editable=&quot;false&quot; id=&quot;phone&quot;/> <mx:TextInput x=&quot;110&quot; y=&quot;66&quot; editable=&quot;false&quot; id=&quot;email&quot;/> <mx:Button id=&quot;edit&quot; bottom=&quot;10&quot; left=&quot;10&quot; label=&quot;Edit&quot; width=&quot;41&quot; height=&quot;20&quot; toggle=&quot;true&quot; /> </mx:Canvas>
Adding The Component <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; xmlns:pf2=&quot;com.oreilly.programmingflex.contactmanager.views.*&quot;> <pf2:ContactDetails/> </mx:Application>
Think of Components as Black Boxes
Adding States ,[object Object],[object Object],<mx:states> <mx:State name=&quot;{VIEW_MODE}&quot;/> <mx:State name=&quot;{EDIT_MODE}&quot; basedOn=&quot;{VIEW_MODE}&quot;> <mx:SetProperty target=&quot;{address}&quot; name=&quot;editable&quot; value=&quot;true&quot;/> <mx:SetProperty target=&quot;{email}&quot; name=&quot;editable&quot; value=&quot;true&quot;/> <mx:SetProperty target=&quot;{phone}&quot; name=&quot;editable&quot; value=&quot;true&quot;/> </mx:State> </mx:states>
Adding Methods & Properties ,[object Object],[object Object],public   static   const  VIEW_STATE:String =  &quot;view&quot; ; public   static   const  EDIT_STATE:String =  &quot;edit&quot; ; [ Bindable ] public   function   get  mode():String { return   this .currentState; } [Inspectable(enumeration= &quot;{ContactDetails.VIEW_MODE},{ContactDetails.EDIT_STATE}&quot; )] public   function   set  mode(value:String): void { this .currentState = value; }
Adding Events ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creating a Custom Event Class ,[object Object],[object Object],package com.oreilly.programmingflex.contactmanager.events { import flash.events.Event; public class EditChangeEvent extends Event { public static const EDIT_CHANGE:String = &quot;editChange&quot;; public var edit:Boolean; public function EditChangeEvent(edit:Boolean=false) { super(EDIT_CHANGE); this.edit = edit; } override public function clone():Event { return new EditChangeEvent(this.edit); } } }
Adding Events ,[object Object],[object Object],[object Object],import com.oreilly.programmingflex.contactmanager.events.EditChangeEvent; private function clickHandler(e:MouseEvent:void { if(this.currentState == VIEW_MODE) { this.mode = EDIT_MODE; phone.setFocus(); var eventEditing:EditChangeEvent = new EditChangeEvent(true); dispatchEvent(eventEditing); } else if(this.currentState == EDIT_MODE) { this.mode = VIEW_MODE; var eventDoneEditing:EditChangeEvent = new EditChangeEvent(false); dispatchEvent(eventDoneEditing); } }
Adding the Event Metadata tag ,[object Object],[object Object],<mx:Metadata> [Event(name=&quot;editChange&quot;, type=&quot;com.oreilly.programmingflex.contactmanager.events.EditChangeEvent&quot;)]  </mx:Metadata>
Things To Keep In Mind About Application Components ,[object Object],[object Object],[object Object]
Taskie
Taskie ,[object Object],[object Object]
Thank You! ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Introduction to visual basic programming
Introduction to visual basic programmingIntroduction to visual basic programming
Introduction to visual basic programming
Roger Argarin
 
Project Rui Full Size
Project Rui Full SizeProject Rui Full Size
Project Rui Full Size
Rui Zheng
 
WP7 HUB_Introducción a Silverlight
WP7 HUB_Introducción a SilverlightWP7 HUB_Introducción a Silverlight
WP7 HUB_Introducción a Silverlight
MICTT Palma
 

Tendances (19)

MVC
MVCMVC
MVC
 
Introduction to visual basic programming
Introduction to visual basic programmingIntroduction to visual basic programming
Introduction to visual basic programming
 
Transforming Power Point Show with VBA
Transforming Power Point Show with VBATransforming Power Point Show with VBA
Transforming Power Point Show with VBA
 
Project Rui Full Size
Project Rui Full SizeProject Rui Full Size
Project Rui Full Size
 
MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3
 
Introduction To Rich Internet Applications
Introduction To Rich Internet ApplicationsIntroduction To Rich Internet Applications
Introduction To Rich Internet Applications
 
Model View Presenter presentation
Model View Presenter presentationModel View Presenter presentation
Model View Presenter presentation
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
WP7 HUB_Introducción a Silverlight
WP7 HUB_Introducción a SilverlightWP7 HUB_Introducción a Silverlight
WP7 HUB_Introducción a Silverlight
 
MVC Training Part 2
MVC Training Part 2MVC Training Part 2
MVC Training Part 2
 
Java Swing Custom GUI MVC Component Tutorial
Java Swing Custom GUI MVC Component TutorialJava Swing Custom GUI MVC Component Tutorial
Java Swing Custom GUI MVC Component Tutorial
 
ASP.NET MVC3 RAD
ASP.NET MVC3 RADASP.NET MVC3 RAD
ASP.NET MVC3 RAD
 
Web tech
Web techWeb tech
Web tech
 
Web tech
Web techWeb tech
Web tech
 
Web tech
Web techWeb tech
Web tech
 
Web techh
Web techhWeb techh
Web techh
 
Rc085 010d-vaadin7
Rc085 010d-vaadin7Rc085 010d-vaadin7
Rc085 010d-vaadin7
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines  ASP .NET MVC Introduction & Guidelines
ASP .NET MVC Introduction & Guidelines
 

En vedette

En vedette (6)

Estatutos Del Nuevo Milenio (Paulo Coelho)
Estatutos Del Nuevo Milenio (Paulo Coelho)Estatutos Del Nuevo Milenio (Paulo Coelho)
Estatutos Del Nuevo Milenio (Paulo Coelho)
 
Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)Reuters: Pictures of the Year 2016 (Part 2)
Reuters: Pictures of the Year 2016 (Part 2)
 
What's Next in Growth? 2016
What's Next in Growth? 2016What's Next in Growth? 2016
What's Next in Growth? 2016
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business32 Ways a Digital Marketing Consultant Can Help Grow Your Business
32 Ways a Digital Marketing Consultant Can Help Grow Your Business
 

Similaire à Test

Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
dominion
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan
 
Stephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep DiveStephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep Dive
MicrosoftFeed
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
Dave Bost
 

Similaire à Test (20)

MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
 
Asp.Net MVC Intro
Asp.Net MVC IntroAsp.Net MVC Intro
Asp.Net MVC Intro
 
react-en.pdf
react-en.pdfreact-en.pdf
react-en.pdf
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part II
 
Better User Experience with .NET
Better User Experience with .NETBetter User Experience with .NET
Better User Experience with .NET
 
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax PluginsHnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
Hnd201 Building Ibm Lotus Domino Applications With Ajax Plugins
 
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
ChircuVictor StefircaMadalin rad_aspmvc3_wcf_vs2010
 
Introduction To Mvc
Introduction To MvcIntroduction To Mvc
Introduction To Mvc
 
Angularjs2 presentation
Angularjs2 presentationAngularjs2 presentation
Angularjs2 presentation
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
 
ASP.NET Identity
ASP.NET IdentityASP.NET Identity
ASP.NET Identity
 
Getting Started with Zend Framework
Getting Started with Zend FrameworkGetting Started with Zend Framework
Getting Started with Zend Framework
 
ReactJS.pptx
ReactJS.pptxReactJS.pptx
ReactJS.pptx
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Stephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep DiveStephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep Dive
 
Jmp108
Jmp108Jmp108
Jmp108
 
Custom PrimeFaces components
Custom PrimeFaces componentsCustom PrimeFaces components
Custom PrimeFaces components
 
Adobe Flex4
Adobe Flex4 Adobe Flex4
Adobe Flex4
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

Test

  • 1.
  • 2.
  • 3.
  • 4.
  • 6.
  • 7.
  • 8.
  • 9.
  • 11.
  • 12.
  • 13. Overview MODEL CONTROLLER VIEW M: Databinding of data objects M: events, databinding, responders C: Call methods and properties C: Set dataprovider Call methods/properties Change states Change views V: Dispatch events
  • 14.
  • 15. Overview MODEL CONTROLLER VIEW M: Databinding of data objects M: events, databinding, responders C: Call methods and properties C: Set dataprovider Call methods/properties Change states Change views V: Dispatch events
  • 16.
  • 17. Overview MODEL CONTROLLER VIEW M: Databinding of data objects M: events, databinding, responders C: Call methods and properties C: Set dataprovider Call methods/properties Change states Change views V: Dispatch events
  • 18.
  • 19.
  • 21. What Are Application Components?
  • 22. What Are Application Components?
  • 23.
  • 24.
  • 25. Think Of MXML Components Like Full Applications
  • 26. Adding Sub-Components & Handling Layout <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Canvas xmlns:mx=&quot; http://www.adobe.com/2006/mxml &quot; width=&quot;100%&quot; backgroundColor=&quot;#f8f8f8&quot; height=&quot;100%&quot;> <mx:Label id=&quot;contactName&quot; x=&quot;10&quot; y=&quot;10&quot; text=&quot;John Doe&quot;/> <mx:Label x=&quot;62&quot; y=&quot;42&quot; text=&quot;phone&quot;/> <mx:Label x=&quot;53&quot; y=&quot;94&quot; text=&quot;address&quot;/> <mx:Label x=&quot;66&quot; y=&quot;68&quot; text=&quot;email&quot;/> <mx:TextArea x=&quot;110&quot; y=&quot;93&quot; editable=&quot;false&quot; enabled=&quot;true&quot; width=&quot;160&quot; height=&quot;63&quot; id=&quot;address&quot;/> <mx:TextInput x=&quot;110&quot; y=&quot;40&quot; editable=&quot;false&quot; id=&quot;phone&quot;/> <mx:TextInput x=&quot;110&quot; y=&quot;66&quot; editable=&quot;false&quot; id=&quot;email&quot;/> <mx:Button id=&quot;edit&quot; bottom=&quot;10&quot; left=&quot;10&quot; label=&quot;Edit&quot; width=&quot;41&quot; height=&quot;20&quot; toggle=&quot;true&quot; /> </mx:Canvas>
  • 27. Adding The Component <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; xmlns:pf2=&quot;com.oreilly.programmingflex.contactmanager.views.*&quot;> <pf2:ContactDetails/> </mx:Application>
  • 28. Think of Components as Black Boxes
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 37.
  • 38.