| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
About this book | |
| |
| |
| |
Introducing Adobe AIR | |
| |
| |
| |
Anatomy of Adobe AIR | |
| |
| |
Developing for a runtime environment | |
| |
| |
Why build desktop applications? | |
| |
| |
Exploring AIR possibilities | |
| |
| |
| |
Running AIR applications | |
| |
| |
| |
AIR application security and authenticity | |
| |
| |
Understanding AIR application security | |
| |
| |
Ensuring application authenticity | |
| |
| |
| |
Building AIR applications | |
| |
| |
| |
Introducing AIR application descriptors | |
| |
| |
The application element | |
| |
| |
The id element | |
| |
| |
The version element | |
| |
| |
The filename element | |
| |
| |
The initialWindow element | |
| |
| |
The name element | |
| |
| |
The title and description elements | |
| |
| |
The installFolder element | |
| |
| |
The programMenuFolder element | |
| |
| |
The icon element | |
| |
| |
The customUpdateUI element | |
| |
| |
The fileTypes element | |
| |
| |
| |
Building AIR applications using Flex Builder | |
| |
| |
Configuring a new AIR project | |
| |
| |
Creating AIR project files | |
| |
| |
Testing the AIR application | |
| |
| |
Creating an installer | |
| |
| |
| |
Building AIR applications using Flash | |
| |
| |
Configuring a new AIR project | |
| |
| |
Creating AIR project files | |
| |
| |
Testing the AIR application | |
| |
| |
Creating an installer | |
| |
| |
| |
Building AIR applications using the Flex SDK | |
| |
| |
Configuring a new AIR project | |
| |
| |
Creating AIR project files | |
| |
| |
Testing the AIR application | |
| |
| |
Creating an installer | |
| |
| |
| |
Quick-start AIR application for Flex | |
| |
| |
| |
Quick-start AIR application for Flash | |
| |
| |
| |
Summary | |
| |
| |
| |
Applications, windows, and menus | |
| |
| |
| |
Understanding applications and windows | |
| |
| |
ActionScript application and windows | |
| |
| |
Flex application and windows | |
| |
| |
| |
Managing windows | |
| |
| |
Retrieving window references | |
| |
| |
Positioning windows | |
| |
| |
Closing windows | |
| |
| |
Ordering windows | |
| |
| |
Moving and resizing windows | |
| |
| |
| |
Managing applications | |
| |
| |
Detecting idleness | |
| |
| |
Launching applications on startup | |
| |
| |
Setting file associations | |
| |
| |
Alerting the user | |
| |
| |
Full-screen mode | |
| |
| |
| |
Menus | |
| |
| |
Creating menus | |
| |
| |
Adding elements to menus | |
| |
| |
Listening for menu selections | |
| |
| |
Creating special menu items | |
| |
| |
Using menus | |
| |
| |
| |
Starting the AirTube application | |
| |
| |
Overview of AirTube | |
| |
| |
Getting started | |
| |
| |
Building the data model | |
| |
| |
Building the AirTube service | |
| |
| |
Retrieving.flv URLs | |
| |
| |
Building the AirTube main window | |
| |
| |
Adding the video and HTML windows | |
| |
| |
| |
Summary | |
| |
| |
| |
File system integration | |
| |
| |
| |
Understanding synchronicity | |
| |
| |
Canceling asynchronous file operations | |
| |
| |
| |
Getting references to files and directories | |
| |
| |
Introducing the File class | |
| |
| |
Referencing common directories | |
| |
| |
Relative referencing | |
| |
| |
Absolute referencing | |
| |
| |
Accessing a full path | |
| |
| |
User referencing | |
| |
| |
Making paths display nicely | |
| |
| |
| |
Listing directory contents | |
| |
| |
Getting directory listings synchronously | |
| |
| |
Getting directory listings asynchronously | |
| |
| |
| |
Creating directories | |
| |
| |
| |
Removing directories and files | |
| |
| |
| |
Copying and moving files and directories | |
| |
| |
| |
Reading from and writing to files | |
| |
| |
Reading from files | |
| |
| |
Writing to files | |
| |
| |
| |
Reading and writing music playlists | |
| |
| |
Building the data model | |
| |
| |
Building the controller | |
| |
| |
Building the user interface | |
| |
| |
| |
Storing data securely | |
| |
| |
| |
Writing to files with AirTube | |
| |
| |
| |
Summary | |
| |
| |
| |
Copy-and-paste and drag-and-drop | |
| |
| |
| |
Using a clipboard to transfer data | |
| |
| |
What's a clipboard? | |
| |
| |
Understanding data formats | |
| |
| |
Reading and writing data | |
| |
| |
Removing data from a clipboard | |
| |
| |
Understanding transfer modes | |
| |
| |
Deferred rendering | |
| |
| |
| |
Copy-and-paste | |
| |
| |
Selecting a clipboard | |
| |
| |
Copying content | |
| |
| |
Pasting content | |
| |
| |
Cutting content | |
| |
| |
Using custom formats | |
| |
| |
| |
Drag-and-drop | |
| |
| |
Understanding drag-and-drop | |
| |
| |
Drag-and-drop events | |
| |
| |
Using the drag manager | |
| |
| |
Adding drag indicators | |
| |
| |
Dragging out of an AIR application | |
| |
| |
Dragging into an AIR application | |
| |
| |
| |
Adding drag-and-drop to AirTube | |
| |
| |
| |
Summary | |
| |
| |
| |
Using local databases | |
| |
| |
| |
What is a database? | |
| |
| |
| |
Understanding SQL | |
| |
| |
Creating and deleting tables | |
| |
| |
Adding data to tables | |
| |
| |
Editing data in tables | |
| |
| |
Deleting data from tables | |
| |
| |
Retrieving data from tables | |
| |
| |
| |
Creating and opening databases | |
| |
| |
| |
Running SQL commands | |
| |
| |
Creating SQL statements | |
| |
| |
Running SQL statements | |
| |
| |
Handling SELECT results | |
| |
| |
Typing results | |
| |
| |
Paging results | |
| |
| |
Parameterizing SQL statements | |
| |
| |
Using transactions | |
| |
| |
| |
Building a ToDo application | |
| |
| |
Building the to-do item data model class | |
| |
| |
Creating a to-do item component | |
| |
| |
Creating the database | |
| |
| |
Creating an input form | |
| |
| |
Adding SQL statements | |
| |
| |
| |
Working with multiple databases | |
| |
| |
| |
Adding database support to AirTube | |
| |
| |
Updating ApplicationData to support online/offline modes | |
| |
| |
Adding a button to toggle online/offline modes | |
| |
| |
Supporting offline saving and searching | |
| |
| |
| |
Summary | |
| |
| |
| |
Network communication | |
| |
| |
| |
Monitoring network connectivity | |
| |
| |
Monitoring HTTP connectivity | |
| |
| |
Monitoring socket connectivity | |
| |
| |
| |
Adding network monitoring to AirTube | |
| |
| |
| |
Summary | |
| |
| |
| |
HTML in AIR | |
| |
| |
| |
Displaying HTML in AIR | |
| |
| |
Using native Flash HTML display objects | |
| |
| |
Loading PDF content | |
| |
| |
Using the Flex component | |
| |
| |
| |
Controlling how AIR loads HTML | |
| |
| |
Controlling content caching | |
| |
| |
Controlling authentication | |
| |
| |
Specifying a user agent type | |
| |
| |
Managing persistent data | |
| |
| |
Setting defaults | |
| |
| |
| |
Scrolling HTML content | |
| |
| |
Scrolling HTML in Flex | |
| |
| |
Scrolling HTML content using ActionScript | |
| |
| |
Creating autoscrolling windows | |
| |
| |
| |
Navigating HTML history | |
| |
| |
| |
Interacting with JavaScript | |
| |
| |
Controlling HTML/JavaScript elements from ActionScript | |
| |
| |
Handling JavaScript events from ActionScript | |
| |
| |
Building a hybrid application | |
| |
| |
Handling standard JavaScript commands | |
| |
| |
Referencing ActionScript elements from JavaScript | |
| |
| |
| |
Managing security issues | |
| |
| |
Sandboxes | |
| |
| |
Sandbox bridges | |
| |
| |
| |
Adding HTML to AirTube | |
| |
| |
| |
Summary | |
| |
| |
| |
Distributing and updating AIR applications | |
| |
| |
| |
Distributing applications | |
| |
| |
Using the default badge | |
| |
| |
Creating a custom badge | |
| |
| |
| |
Updating applications | |
| |
| |
| |
Launching AIR applications | |
| |
| |
Handling invoke events | |
| |
| |
Launching AirTube with a file | |
| |
| |
Listening for browser events | |
| |
| |
| |
Summary | |
| |
| |
Index | |