Working with Events in Flex and ActionScript 3.0 is something that we all do on a regular basis - but do we really know how to take advantage of everything that the Event flow in AS3 has to offer? What are the different phases of an event's life? What exactly is an Event's priority? This session will cover the life of an Event - how to create one, listen to it though various stages of it's life, and if needs be, kill it without mercy. We'll also cover creating your own custom events, and how to clean up after yourself when you're done using an Event.
2. WHO AM I?
I like long walks on the beach...
CURRENTLY Senior Developer at Rain. Building Flash, Flex, iPhone apps, and
bringing the hurt in CoD4.
PREVIOUSLY Flash Ninja at Footnote.com, Flash developer at mediaRAIN.
(Yes, same place I’m at now, just a different name. Long story.) Basically, I’ve
been writing ActionScript in some form since 2003.
CONFERENCES Adobe MAX, 360|Flex San Jose, Flash Forward
3. TODAY
If you decide to walk out now, it’s OK. Really.
WHAT IT IS Events 201. We’ll discuss the basics just a little bit, but then get
into more intermediate topics and practical examples.
WHAT IT’S NOT The molecular structure of Events, how to hack the byte-
code of the .SWF to mod your events, or super-bizarre edge cases.
4. THE AGENDA
Trust me. There’s actually a plan.
•What an Event is
•How they work
•How to use them
•Dispatching events
•Removing event listeners
5. THE AGENDA
Really. I promise.
•Creating custom events
•Event Priority
•The Event Flow
•Event targets
•Default Behaviors
•Killing events
7. WHAT IS AN EVENT?
Noteworthy... yeah. I was gonna say that.
”A noteworthy runtime occurrence that
has the potential to trigger a response
in the program.”
8. TYPES OF EVENTS
BUILT-IN events are defined and dispatched by the Flash Player
CUSTOM events are defined and dispatched by the developer’s code.
10. CUSTOM EVENTS
If you build it, they will come... or something like that.
XML Parsing Complete
Game Over
Application State Changes
Custom Components
11. EVENT BASICS
You’re old enough, it’s time we had the talk.
SOMETHING HAPPENS This is one of those noteworthy runtime occurrences.
CREATION An instance of Event, or a subclass of it is created.
DISPATCH The created Event instance is dispatched to anything that cares.
HANDLING Something receives the event dispatch. Usually.
13. EVENT OBJECTS
TYPE Either an instance of Event, or a subclass of it.
NAME The name of the Event. (Kinda obvious, right?)
PHASE Where in the event flow this Event is at.
TARGET What triggered this Event, and what’s handling it.
14. USING EVENTS
NAME of the Event
TYPE of Event
REGISTER to listen for the Event
HANDLE the Event when it happens
WAIT for the Event to occur.
31. WEAK REFERENCES
PREVENTS listeners from becoming stranded
NO GUARANTEES when they’ll be cleaned up
FORCE GARBAGE COLLECTION Unsupported, and SHOULD NOT be used in production code
http://bit.ly/IU0Z5
33. CUSTOM EVENTS
It’s alive!
NAME-ONLY Still basic events, only their name has changed.
EXTEND When your Events need to carry additional properties, or provide
other extra functionality.
34. EXTENDING EVENT
OVERRIDE clone() and toString()
EXTEND When your Events need to carry additional properties, or provide
other extra functionality.
MORE INFO http://bit.ly/Fwb64
36. EVENT PRIORITY
EVENTS registered for the same event, with the same object fire in the order
they were registered.
UNLESS you change their priority when registering.
HIGHER priority listeners will be triggered first.
44. KILLING EVENTS
stopPropagation() prevents the Event from continuing through the remainder of the event flow.
stopImmediatePropagation() stops the Event in it’s tracks. Do not pass Go. Do not collect $200.