Object-Oriented ActionScript 3.0

5,006 views
4,895 views

Published on

Published in: Technology
4 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
5,006
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
218
Comments
4
Likes
5
Embeds 0
No embeds

No notes for slide

Object-Oriented ActionScript 3.0

  1. 1. Object-Oriented ActionScript 3.0 Peter Elst 4th-6th June 2008 Edinburgh, Scotland
  2. 2. Object-Oriented Programming ■ Difficult ■ Scary ■ Overhead ■ Only for large teams 4th-6th June 2008 Edinburgh, Scotland
  3. 3. Object-Oriented Programming ■ Difficult? Structured code ■ Scary ■ Overhead ■ Only for large teams 4th-6th June 2008 Edinburgh, Scotland
  4. 4. Object-Oriented Programming ■ Difficult? Structured code ■ Scary? Initial learning curve ■ Overhead ■ Only for large teams 4th-6th June 2008 Edinburgh, Scotland
  5. 5. Object-Oriented Programming ■ Difficult? Structured code ■ Scary? Initial learning curve ■ Overhead? Promotes code reuse ■ Only for large teams 4th-6th June 2008 Edinburgh, Scotland
  6. 6. Object-Oriented Programming ■ Difficult? Structured code ■ Scary? Initial learning curve ■ Overhead? Promotes code reuse ■ Only for large teams? Useful for anyone 4th-6th June 2008 Edinburgh, Scotland
  7. 7. Classes (the artist formerly known as prototype) ■ The way things were: function Conference() { this.name = quot;Flashforwardquot;; } Conference.prototype.getName = function() { trace(quot;conference name: quot;+this.name); } var myConference = new Conference(); myConference.getName(); 4th-6th June 2008 Edinburgh, Scotland
  8. 8. Classes (the artist formerly known as prototype) ■ The way things are: package { public class Conference { public var name:String = quot;Flashforwardquot;; public function getName():void { trace(quot;conference name: quot;+this.name); } } } 4th-6th June 2008 Edinburgh, Scotland
  9. 9. Instances ■ Classes provide a blueprint ■ Instances set their values for properties 4th-6th June 2008 Edinburgh, Scotland
  10. 10. Inheritance (getting rich the easy way) ■ Classes can extend each-other ■ Avoids code duplication ■ Properties and methods can be overridden package { public class SuperClass extends BaseClass { public function SuperClass() { super(); } } } 4th-6th June 2008 Edinburgh, Scotland
  11. 11. Inheritance vs composition ■ Inheritance deals with an is a relationship ■ Composition is used for has a relationships Employee is a Person Employee has a Job 4th-6th June 2008 Edinburgh, Scotland
  12. 12. Encapsulation (don't touch my stuff) ■ Protect the inner workings of your code through the use of access modifiers ■ Provide an API for other classes to use by providing getter/setter methods public - anything can access this private - only the class itself can access protected - class and its subclasses can access internal (default) - all classes in the same class package 4th-6th June 2008 Edinburgh, Scotland
  13. 13. Polymorphism (copycat behavior) ■ Have classes use the same method names ■ Allows classes to be swapped at runtime ■ Same name but different implementation Doctor.work() Fireman.work() WebDeveloper.work() 4th-6th June 2008 Edinburgh, Scotland
  14. 14. Interfaces (sign on the dotted line) ■ Classes can use one or more interfaces ■ Interfaces require a class to implement a specific set of methods ■ Used to formalize polymorphism ■ Interfaces can extend each-other 4th-6th June 2008 Edinburgh, Scotland
  15. 15. Design Patterns General solutions to common problems 4th-6th June 2008 Edinburgh, Scotland
  16. 16. Observer pattern ■ Problem: notify other classes when an update occurs in a data model ■ Solution: keep an array of all instances that want to be notified and call their update method then the model has changed 4th-6th June 2008 Edinburgh, Scotland
  17. 17. Singleton pattern ■ Problem: allow only one instance of a class to exist in an application ■ Solution: prevent the constructor from being called outside of the class scope and provide a static method for returning the single class instance 4th-6th June 2008 Edinburgh, Scotland
  18. 18. Want to learn more? Books ■ Object-Oriented ActionScript 3.0 ■ Essential ActionScript 3.0 Course ■ Core ActionScript 3.0 (Skills Matter - London) 4th-6th June 2008 Edinburgh, Scotland
  19. 19. Thanks! 4th-6th June 2008 Edinburgh, Scotland
  20. 20. Get in touch! Peter Elst Flash Platform Consultant Blog: www.peterelst.com Email: training@peterelst.com LinkedIn: www.linkedin.com/in/peterelst Twitter: www.twitter.com/peterelst 4th-6th June 2008 Edinburgh, Scotland

×