You are previewing Professional Flash® Lite® Mobile Development.
O'Reilly logo
Professional Flash® Lite® Mobile Development

Book Description

Everything you need to start developing for mobile devices today

Adobe Flash Lite allows you to quickly create and publish engaging mobile content for games, wallpapers, video, music, or applications. With this essential guide, you'll discover how to develop applications for Flash-enabled mobile devices using ActionScript 2.0 and the latest version of Flash Lite. Detailed walkthroughs take you from concept to completion for a variety of examples.

The author provides an overview on extending Flash Lite capabilities and shows you how to distribute complete applications using the Adobe Distributable Player and Packager.

  • Discover how Adobe Flash Lite allows you to quickly create engaging mobile content to Flash-enabled mobile devices

  • Demonstrates every step in the development process, from concept to completion

  • Reinforces four critical topics throughout the book: ActionScript 2.0 mobile device considerations, PureMVC framework, native device properties, and the ability to extend Flash Lite

This in-depth exploration of Adobe Flash Lite is no lightweight!

Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.

Table of Contents

  1. Copyright
  2. CREDITS
  3. ABOUT THE AUTHOR
  4. ACKNOWLEDGMENTS
  5. INTRODUCTION
    1. WHO SHOULD USE THIS BOOK
    2. WHAT THIS BOOK COVERS
      1. Chapter-by-Chapter Description
    3. HOW THIS BOOK IS STRUCTURED
    4. WHAT YOU NEED TO USE THIS BOOK
    5. CONVENTIONS
    6. SOURCE CODE
    7. ERRATA
    8. P2P.WROX.COM
  6. 1. Flash Is Mobile
    1. 1.1. MOBILE DEVICES
    2. 1.2. THE MOBILE ECOSYSTEM
      1. 1.2.1. Participants
        1. 1.2.1.1. OEMs
        2. 1.2.1.2. Network Operators
        3. 1.2.1.3. Media Owners
        4. 1.2.1.4. Content Producers
        5. 1.2.1.5. Aggregators
        6. 1.2.1.6. App Stores
      2. 1.2.2. Recommended Reading
    3. 1.3. ENGAGING EXPERIENCES THAT WORK ON SMALL SCREENS
      1. 1.3.1. What is Flash Lite?
      2. 1.3.2. Past, Present, and Future
        1. 1.3.2.1. Flash Lite 1.x
        2. 1.3.2.2. Flash Lite 2.x
        3. 1.3.2.3. Flash Lite 3.x
      3. 1.3.3. The Open Screen Project
        1. 1.3.3.1. Flash Player 10.1
      4. 1.3.4. Multiple Devices and Platforms
      5. 1.3.5. OEMs Supporting Flash Lite Player Development
      6. 1.3.6. Types of Flash Lite Mobile Content
    4. 1.4. FLASH LITE ARCHITECTURE
      1. 1.4.1. Flash Lite Player 3.x Features
        1. 1.4.1.1. ActionScript 2.0
        2. 1.4.1.2. Device Features and Capabilities
        3. 1.4.1.3. Loading External Resources
        4. 1.4.1.4. Audio Support
        5. 1.4.1.5. Video Support
        6. 1.4.1.6. Text and Font Support
        7. 1.4.1.7. Navigation and Keys
        8. 1.4.1.8. Images
        9. 1.4.1.9. Persistent Data
        10. 1.4.1.10. Dynamic Data and XML Support
    5. 1.5. SUMMARY
  7. 2. Getting Started
    1. 2.1. DEVELOPING FOR FLASH DEVICES
      1. 2.1.1. What You Will Need
        1. 2.1.1.1. Adobe Flash CS4 Professional
        2. 2.1.1.2. Adobe Device Central CS4
    2. 2.2. USING DEVICE CENTRAL
      1. 2.2.1. What Are Device Sets?
      2. 2.2.2. Using the Online and Local Libraries
      3. 2.2.3. Understanding Device Profiles
      4. 2.2.4. Creating Device Sets
      5. 2.2.5. Comparing Device Profile Information
        1. 2.2.5.1. Display Sizes
        2. 2.2.5.2. Modifying the Display Mode
      6. 2.2.6. Creating New Flash Mobile Documents
        1. 2.2.6.1. Device Profiles Used in this Book
    3. 2.3. CREATING A "HELLO WORLD" EXAMPLE
    4. 2.4. USING THE EMULATOR IN DEVICE CENTRAL
      1. 2.4.1. Memory and Device CPU
        1. 2.4.1.1. Using the Memory Panel
        2. 2.4.1.2. Using the Device Performance Panel
    5. 2.5. TESTING ON MOBILE DEVICES
      1. 2.5.1. Devices with Flash Lite Pre-Installed
      2. 2.5.2. Remote Devices
        1. 2.5.2.1. Remote Device Access (RDA)
        2. 2.5.2.2. DeviceAnywhere
    6. 2.6. SUMMARY
  8. 3. Object-Oriented Programming for Flash Lite Development
    1. 3.1. AS2 REVISITED
    2. 3.2. OBJECT-ORIENTED PROGRAMMING FOR FLASH LITE
      1. 3.2.1. Why OOP?
      2. 3.2.2. An OOP Example for Mobile
        1. 3.2.2.1. Creating a Class
        2. 3.2.2.2. Creating an Interface
    3. 3.3. MOBILE DEVICE CONSIDERATIONS
      1. 3.3.1. Using fscommands to Communicate with the Device
        1. 3.3.1.1. fscommand()
        2. 3.3.1.2. fscommand2()
          1. 3.3.1.2.1. Indicating the Device's Battery Status
          2. 3.3.1.2.2. Displaying the Network Signal Level
          3. 3.3.1.2.3. Monitoring Device Memory Allocation
          4. 3.3.1.2.4. Handling Network Requests and Connections
        3. 3.3.1.3. Other Scenarios for Using fscommand2()
    4. 3.4. USING DEVICE CAPABILITIES
      1. 3.4.1. System.capabilities
        1. 3.4.1.1. Information about the System
        2. 3.4.1.2. External Data Support
          1. 3.4.1.2.1. Key and Device Interaction
        3. 3.4.1.3. Media Capabilities
        4. 3.4.1.4. Communication Features
    5. 3.5. EVENTS AND EVENT LISTENERS
      1. 3.5.1. Using the EventDispatcher Class
        1. 3.5.1.1. Creating the Timer Class Example
        2. 3.5.1.2. setInterval() and clearInterval()
        3. 3.5.1.3. dispatchEvent()
        4. 3.5.1.4. addEventListener() and removeEventListener()
    6. 3.6. KEYS, BUTTONS, AND TOUCH INPUT
      1. 3.6.1. Using the Key Class
        1. 3.6.1.1. Key.addListener()
        2. 3.6.1.2. onKeyDown() and onKeyUp()
        3. 3.6.1.3. Key.removeListener()
      2. 3.6.2. Using the ExtendedKey Class
      3. 3.6.3. Handling Touch Interaction
        1. 3.6.3.1. Using Buttons
    7. 3.7. SUMMARY
  9. 4. UI Components
    1. 4.1. SONY ERICSSON AND FORUM NOKIA COMPONENT LIBRARIES
    2. 4.2. USING TEXT
    3. 4.3. USING BUTTONS
      1. 4.3.1. UI Component States
      2. 4.3.2. Using the Component Inspector
    4. 4.4. USING SOFT KEYS
    5. 4.5. USING STATUS BAR
    6. 4.6. USING TITLE
    7. 4.7. USING CHECK BOXES
    8. 4.8. USING RADIO BUTTONS
    9. 4.9. USING LISTS
      1. 4.9.1. Creating a Single Row List
        1. 4.9.1.1. Dual Row Lists and Lists with Icons
        2. 4.9.1.2. Lists with Check Boxes
        3. 4.9.1.3. Lists with Radio Buttons
    10. 4.10. USING MODAL DIALOGUES
    11. 4.11. USING VISUAL INDICATORS
      1. 4.11.1. The Progress Indicator
      2. 4.11.2. The Wait Indicator
    12. 4.12. USING SLIDERS
    13. 4.13. USING SCROLLABLE AREAS
      1. 4.13.1. Using the Scrollable Area Component
      2. 4.13.2. Using the Scrollable Text Component
    14. 4.14. USING NOTIFICATION
    15. 4.15. SUMMARY
  10. 5. PureMVC ActionScript 2.0 Framework
    1. 5.1. DESIGN PATTERNS AND DEVELOPMENT FRAMEWORKS
      1. 5.1.1. Time for a Development Framework
        1. 5.1.1.1. Maintenance Headaches
        2. 5.1.1.2. Tight-Coupling and Specific Code Implementations
        3. 5.1.1.3. Reliability and Usability
      2. 5.1.2. Design Patterns Used in PureMVC
    2. 5.2. PUREMVC KEY CONCEPTS EXPLAINED
      1. 5.2.1. The Facade
        1. 5.2.1.1. Creating ApplicationFacade
        2. 5.2.1.2. initializeController()
      2. 5.2.2. Notifications and the Observer
        1. 5.2.2.1. sendNotification()
      3. 5.2.3. Commands and the Controller
        1. 5.2.3.1. MacroCommand versus SimpleCommand
        2. 5.2.3.2. Using execute()
        3. 5.2.3.3. Using initializeMacroCommand()
        4. 5.2.3.4. Creating the StartupCommand
        5. 5.2.3.5. Registering Commands with an Application
      4. 5.2.4. Mediators and the View
        1. 5.2.4.1. The ViewPrepCommand
        2. 5.2.4.2. Registering Mediators with an Application
        3. 5.2.4.3. Using listNotificationInterests()
        4. 5.2.4.4. Using handleNotification()
        5. 5.2.4.5. Creating AppMediator
      5. 5.2.5. Proxies and the Model
        1. 5.2.5.1. Registering Proxies with an Application
        2. 5.2.5.2. Using setData()
        3. 5.2.5.3. Using Retrieve and Remove Methods
    3. 5.3. BUILDING A PUREMVC EXAMPLE
      1. 5.3.1. Creating ApplicationFacade Continued
      2. 5.3.2. Creating a Model for the Example App
        1. 5.3.2.1. Using Value Objects and Proxies to Store and Manage Data
          1. 5.3.2.1.1. SectionVO.as
          2. 5.3.2.1.2. SectionProxy.as
      3. 5.3.3. Creating the Example App's Controller
        1. 5.3.3.1. Registering Proxies with the Application
          1. 5.3.3.1.1. ModelPrepCommand.as
        2. 5.3.3.2. Using Commands to Navigate Through Data
          1. 5.3.3.2.1. GetNextSectionCommand.as
          2. 5.3.3.2.2. GetPreviousSectionCommand.as
      4. 5.3.4. Exploring the View
        1. 5.3.4.1. Creating AppMediator Continued
      5. 5.3.5. Viewing the Application in Device Central
    4. 5.4. SUMMARY
  11. 6. Creating a TV Listings Application
    1. 6.1. THE CONCEPT
    2. 6.2. TV GENIUS SEARCH ENGINE API
      1. 6.2.1. Mandatory Search Parameters
      2. 6.2.2. Optional Search Parameters
      3. 6.2.3. Response Format for an API Call
    3. 6.3. FUNCTIONAL REQUIREMENTS
    4. 6.4. BUILDING THE APPLICATION
      1. 6.4.1. The .fla File
      2. 6.4.2. Defining ApplicationFacade
        1. 6.4.2.1. Defining the Notification Names
      3. 6.4.3. Creating a Model for the TV Listings Application
        1. 6.4.3.1. ShowVO
        2. 6.4.3.2. Using fscommands
          1. 6.4.3.2.1. FSCommandsProxy.as
          2. 6.4.3.2.2. ResultsProxy.as
      4. 6.4.4. Using XML Data
        1. 6.4.4.1. Defining XML Objects
        2. 6.4.4.2. Using XPathAPI
        3. 6.4.4.3. Using XMLNode
          1. 6.4.4.3.1. ResultsProxy.as (a continuation)
          2. 6.4.4.3.2. NetworkProxy.as
      5. 6.4.5. Creating the TV Listings Application's Controller
        1. 6.4.5.1. Preparing the Application
          1. 6.4.5.1.1. StartupCommand.as
          2. 6.4.5.1.2. ModelPrepCommand.as
          3. 6.4.5.1.3. ViewPrepCommand.as
        2. 6.4.5.2. Displaying the View Components
          1. 6.4.5.2.1. ShowSearchPanelCommand.as
          2. 6.4.5.2.2. ShowMainMenuCommand.as
          3. 6.4.5.2.3. ViewDetailsCommand.as
        3. 6.4.5.3. Carrying Out the Search
          1. 6.4.5.3.1. SearchCommand.as
        4. 6.4.5.4. Navigating through the Results
          1. 6.4.5.4.1. GetNextResultCommand.as and GetPreviousResultCommand.as
        5. 6.4.5.5. Quitting the APP
          1. 6.4.5.5.1. QuitCommand.as
      6. 6.4.6. Exploring the View
        1. 6.4.6.1. Displaying View Elements
          1. 6.4.6.1.1. MainMenuMediator.as
          2. 6.4.6.1.2. SearchPanelMediator.as
          3. 6.4.6.1.3. ResultsMediator.as
          4. 6.4.6.1.4. DetailsMediator.as
          5. 6.4.6.1.5. NetworkMediator.as
      7. 6.4.7. Viewing the Application in Device Central
    5. 6.5. SECURITY CONSIDERATIONS: LOADING DATA
      1. 6.5.1. The crossdomain.xml File
      2. 6.5.2. Setting the Sandbox Type
      3. 6.5.3. Setting the Playback Security
    6. 6.6. SUMMARY
  12. 7. Creating a Media Console
    1. 7.1. THE CORE MEDIA CLASSES
      1. 7.1.1. Using NetConnection
      2. 7.1.2. Using NetStream
        1. 7.1.2.1. Handling Playback
        2. 7.1.2.2. Buffer Monitoring
        3. 7.1.2.3. Determining Playback Progress
        4. 7.1.2.4. Determining the Data Load
        5. 7.1.2.5. Retrieving Content Meta Data
      3. 7.1.3. Using the Video Object
        1. 7.1.3.1. Creating a Video Object
      4. 7.1.4. Using the Sound Object
        1. 7.1.4.1. Playing a Sound File from the Library
        2. 7.1.4.2. Loading an External .mp3 File
        3. 7.1.4.3. Obtaining ID3 Information File
        4. 7.1.4.4. Controlling the Audio for Video
    2. 7.2. STREAMING AUDIO AND VIDEO
      1. 7.2.1. Streaming FLV Video
      2. 7.2.2. Streaming MP3 Audio
      3. 7.2.3. System.capabilities Revisited
    3. 7.3. BUILDING THE APPLICATION
      1. 7.3.1. The .fla File
      2. 7.3.2. Defining ApplicationFacade
        1. 7.3.2.1. Declaring the Notification Names
      3. 7.3.3. Creating a Model for the Media Console
        1. 7.3.3.1. The Audio Playlist
        2. 7.3.3.2. PlaylistItemVO
        3. 7.3.3.3. Retrieving the Playlist
        4. 7.3.3.4. PlaylistLoader.as
          1. 7.3.3.4.1. PlaylistParser.as
          2. 7.3.3.4.2. PlaylistProxy.as
        5. 7.3.3.5. Handling Media Playback Requests
          1. 7.3.3.5.1. MediaProxy.as
        6. 7.3.3.6. Handling Audio
          1. 7.3.3.6.1. SoundProxy.as
      4. 7.3.4. Creating the Media Console's Controller
        1. 7.3.4.1. Preparing the Application
          1. 7.3.4.1.1. StartupCommand.as
          2. 7.3.4.1.2. ModelPrepCommand.as
          3. 7.3.4.1.3. ViewPrepCommand.as
        2. 7.3.4.2. Retrieving the Playlist
          1. 7.3.4.2.1. LoadPlaylistCommand.as
        3. 7.3.4.3. Controlling the Media
          1. 7.3.4.3.1. PlayCommand.as
          2. 7.3.4.3.2. PauseCommand.as
          3. 7.3.4.3.3. PlayNextCommand.as and PlayPreviousCommand.as
          4. 7.3.4.3.4. RestartCommand.as
        4. 7.3.4.4. Manipulating the Sound
          1. 7.3.4.4.1. ToggleSoundCommand.as
      5. 7.3.5. Exploring the View's Mediators
        1. 7.3.5.1. Displaying Media Playlist
          1. 7.3.5.1.1. PlaylistMediator.as
        2. 7.3.5.2. Displaying the Media Components
          1. 7.3.5.2.1. MediaMediator.as
          2. 7.3.5.2.2. StatusMediator.as
      6. 7.3.6. Viewing the Application in Device Central
    4. 7.4. SUMMARY
  13. 8. Creating an Image Viewer Client
    1. 8.1. THE CHALLENGES
      1. 8.1.1. Supported Images
        1. 8.1.1.1. Image MIME Types
      2. 8.1.2. Loading Multiple Images
      3. 8.1.3. Memory Considerations
      4. 8.1.4. Handling Image Sizes
    2. 8.2. COMPONENTS USED IN THE IMAGE VIEWER
      1. 8.2.1. MovieClipLoader
        1. 8.2.1.1. Creating an Image Component
        2. 8.2.1.2. Exploring the ImageGrid Component
      2. 8.2.2. The SharedObject Class
    3. 8.3. BUILDING THE APPLICATION
      1. 8.3.1. The .fla File
      2. 8.3.2. Defining ApplicationFacade
        1. 8.3.2.1. Defining the Notification Names
      3. 8.3.3. Creating a Model for the Image Viewer
        1. 8.3.3.1. ImageVO.as
        2. 8.3.3.2. Loading the Image XML Data
          1. 8.3.3.2.1. ImagesXMLProxy.as
        3. 8.3.3.3. Handling Image Collections
          1. 8.3.3.3.1. ImageProxy.as
        4. 8.3.3.4. Storing Image Data on the Device
          1. 8.3.3.4.1. SharedObjectProxy.as
      4. 8.3.4. Exploring the View
        1. 8.3.4.1. Viewing a Single Image
          1. 8.3.4.1.1. SingleImageMediator.as
        2. 8.3.4.2. Viewing Multiple Images
          1. 8.3.4.2.1. ImageGridMediator.as
        3. 8.3.4.3. Waiting for Images to Load
          1. 8.3.4.3.1. WaitMediator.as
          2. 8.3.4.3.2. HeaderMediator.as
      5. 8.3.5. Creating the Image Viewer's Controller
        1. 8.3.5.1. Preparing the Application
          1. 8.3.5.1.1. ModelPrepCommand.as
          2. 8.3.5.1.2. ViewPrepCommand.as
        2. 8.3.5.2. Loading the Images
          1. 8.3.5.2.1. LoadImagesXMLCommand.as
          2. 8.3.5.2.2. PrepareImagesCommand.as
        3. 8.3.5.3. Navigating through the Images
          1. 8.3.5.3.1. GetNextImageCommand.as and GetPreviousImageCommand.as
        4. 8.3.5.4. Saving and Retrieving a Reference to a Selected Image
          1. 8.3.5.4.1. SaveImageCommand.as
          2. 8.3.5.4.2. GetStoredImageCommand.as
        5. 8.3.5.5. Displaying the Image Grid
          1. 8.3.5.5.1. ViewImageGridCommand.as
          2. 8.3.5.5.2. SelectFirstImageCommand.as
        6. 8.3.5.6. Displaying a Single Image
          1. 8.3.5.6.1. SelectImageCommand.as
          2. 8.3.5.6.2. ViewSingleImageCommand.as
          3. 8.3.5.6.3. SetIndexCommand.as
      6. 8.3.6. Viewing the Application in Device Central
    4. 8.4. SUMMARY
  14. 9. Creating a Twitter Client
    1. 9.1. EXPLORING THE TWITTER API
      1. 9.1.1. Twitter Fundamentals
        1. 9.1.1.1. Creating a Twitter User Account
        2. 9.1.1.2. Twitter Phrases and Terminology
          1. 9.1.1.2.1. The Twitter Status
          2. 9.1.1.2.2. Tweets
          3. 9.1.1.2.3. Retweeting
          4. 9.1.1.2.4. Following and Blocking
          5. 9.1.1.2.5. Timelines
          6. 9.1.1.2.6. HashTags and Trends
          7. 9.1.1.2.7. Direct Messaging
          8. 9.1.1.2.8. Replies and Mentions
      2. 9.1.2. Twitter API Methods
        1. 9.1.2.1. Account Requests
          1. 9.1.2.1.1. Verifying User Credentials
        2. 9.1.2.2. Block Request
        3. 9.1.2.3. Direct Messages Request
        4. 9.1.2.4. Friendships Request
        5. 9.1.2.5. Favorites Request
        6. 9.1.2.6. Statuses Request
    2. 9.2. THE SWX FORMAT
      1. 9.2.1. What Is SWX?
        1. 9.2.1.1. Using SWX RPC
        2. 9.2.1.2. Using SWX PHP
          1. 9.2.1.2.1. Download the SWX Package
          2. 9.2.1.2.2. Creating a Service Call
      2. 9.2.2. User Timeline
        1. 9.2.2.1. Using the SWX Service Explorer
        2. 9.2.2.2. Using the SWX Data Analyzer
    3. 9.3. BUILDING THE APPLICATION
      1. 9.3.1. The .fla File
      2. 9.3.2. Defining ApplicationFacade
        1. 9.3.2.1. Declaring the Notification Names
        2. 9.3.2.2. Registering the Commands
      3. 9.3.3. Creating a Model for the Twitter Client
        1. 9.3.3.1. Defining the Value Objects
          1. 9.3.3.1.1. UserVO.as
          2. 9.3.3.1.2. ProfileStyleVO.as
          3. 9.3.3.1.3. TimelineVO.as
        2. 9.3.3.2. Defining the Proxies
          1. 9.3.3.2.1. UserParser.as
          2. 9.3.3.2.2. TimelineParser.as
        3. 9.3.3.3. Creating TwitterProxy.as
          1. 9.3.3.3.1. LoginProxy.as
      4. 9.3.4. Creating the Twitter Client's Controller
        1. 9.3.4.1. Preparing the Application
          1. 9.3.4.1.1. StartupCommand.as
          2. 9.3.4.1.2. ModelPrepCommand.as
          3. 9.3.4.1.3. ViewPrepCommand.as
        2. 9.3.4.2. Handling Authentication
          1. 9.3.4.2.1. AuthenticateUserCommand.as
        3. 9.3.4.3. Capturing a User's Login Details
          1. 9.3.4.3.1. VerifyCredentialsCommand.as
        4. 9.3.4.4. Using Commands to Store and Retrieve Login Details
          1. 9.3.4.4.1. RetrieveUserDetailsCommand.as
          2. 9.3.4.4.2. StoreLoginDetailsCommand.as
        5. 9.3.4.5. Using Commands to Retrieve Timelines, Retrieve Statuses, and Update User Profiles
          1. 9.3.4.5.1. ShowUserCommand.as
          2. 9.3.4.5.2. ShowFriendsTimelineCommand.as
          3. 9.3.4.5.3. ShowUserTimelineCommand.as
          4. 9.3.4.5.4. UpdateStatusCommand.as
      5. 9.3.5. Exploring the View
        1. 9.3.5.1. The User Login
          1. 9.3.5.1.1. UserLoginMediator.as
        2. 9.3.5.2. Displaying a User's Twitter Status
          1. 9.3.5.2.1. UserStatusMediator.as
        3. 9.3.5.3. Viewing the Friends Timeline
          1. 9.3.5.3.1. FriendsTimelineMediator.as
      6. 9.3.6. Viewing the Application in Device Central
    4. 9.4. SUMMARY
  15. 10. Using Nokia's S60 Platform Services API
    1. 10.1. S60 PLATFORM SERVICES OVERVIEW
      1. 10.1.1. Download and Install the Library
      2. 10.1.2. How to Use the API Methods
        1. 10.1.2.1. Synchronous Methods
        2. 10.1.2.2. Asynchronous Methods
          1. 10.1.2.2.1. Canceling Asynchronous Method Calls
        3. 10.1.2.3. The ReturnValue
        4. 10.1.2.4. Defining Filter and Sort Objects
        5. 10.1.2.5. Error Codes
    2. 10.2. USING APPMANAGER
      1. 10.2.1. API Features
        1. 10.2.1.1. Retrieving Information on Installed Apps
        2. 10.2.1.2. Distinguishing between Types of Apps
        3. 10.2.1.3. Filtering Information on Installed Apps
        4. 10.2.1.4. Handling Results from the GetList() Call
        5. 10.2.1.5. Launching Applications and Documents
    3. 10.3. USING CALENDAR
      1. 10.3.1. API Features
        1. 10.3.1.1. Locating Calendars on a Device
        2. 10.3.1.2. Understanding Calendar Entry File Formats
          1. 10.3.1.2.1. iCalendar (iCal) and vCalendar (vCal)
        3. 10.3.1.3. Creating a New Calendar Entry
        4. 10.3.1.4. Exporting Calendar Entries
        5. 10.3.1.5. Importing Calendar Entries
    4. 10.4. USING CONTACTS
      1. 10.4.1. API Features
        1. 10.4.1.1. Retrieving Contacts, Contact Groups, and Databases
        2. 10.4.1.2. Handling Results from the GetList() Call
        3. 10.4.1.3. Adding New Contact and Contact Group Information
        4. 10.4.1.4. Importing vCard Files
        5. 10.4.1.5. Exporting vCard Files
        6. 10.4.1.6. Organizing Contacts in Groups
    5. 10.5. USING LANDMARKS
      1. 10.5.1. API Features
        1. 10.5.1.1. Landmarks
        2. 10.5.1.2. Creating New Landmarks
        3. 10.5.1.3. Importing and Exporting Landmarks
        4. 10.5.1.4. Creating Landmark Categories
    6. 10.6. USING LOCATION
      1. 10.6.1. API Features
        1. 10.6.1.1. Retrieving the Location of a Device
        2. 10.6.1.2. Retrieving Location Data Automatically
        3. 10.6.1.3. Canceling Calls to Retrieve a Location
        4. 10.6.1.4. Measuring Distances
    7. 10.7. USING MESSAGING
      1. 10.7.1. API Features
        1. 10.7.1.1. Messages
        2. 10.7.1.2. Retrieving Messages from an Inbox
        3. 10.7.1.3. Message Attachments
        4. 10.7.1.4. Filtering Inbox Messages
        5. 10.7.1.5. Sorting Inbox Messages
        6. 10.7.1.6. Sending Messages
        7. 10.7.1.7. Monitoring an Inbox for Incoming Messages
        8. 10.7.1.8. Modifying the Status of a Message
        9. 10.7.1.9. Removing Messages from the Inbox
    8. 10.8. USING MEDIA MANAGEMENT
      1. 10.8.1. API Features
        1. 10.8.1.1. Retrieving Meta Data Using Filter and Sort Objects
          1. 10.8.1.1.1. FileTypes.as
          2. 10.8.1.1.2. FilterVO.as
          3. 10.8.1.1.3. SortVO.as
          4. 10.8.1.1.4. Keys.as
          5. 10.8.1.1.5. MediaManagement.as
    9. 10.9. OTHER S60 PLATFORM SERVICES
      1. 10.9.1. ActionScript Sensor Service API
      2. 10.9.2. ActionScript Logging Service API
      3. 10.9.3. ActionScript SystemInfo Service API
    10. 10.10. SUMMARY
  16. 11. Creating a Weather Client
    1. 11.1. GOOGLE APIS
      1. 11.1.1. Using Google Weather API
        1. 11.1.1.1. Defining Location
        2. 11.1.1.2. Defining Language
        3. 11.1.1.3. The XML API Reply
      2. 11.1.2. Weather Conditions
      3. 11.1.3. Forecast_Information
        1. 11.1.3.1. Try It Out
        2. 11.1.3.2. Weather Icons
      4. 11.1.4. Using Google Map API
        1. 11.1.4.1. Signing Up for a Google API Key
        2. 11.1.4.2. Geocoding
        3. 11.1.4.3. Selecting the Response Format
        4. 11.1.4.4. Parsing JSON
    2. 11.2. WIREFRAMES AND DESIGN
    3. 11.3. BUILDING THE APPLICATION
      1. 11.3.1. The .fla File
      2. 11.3.2. Defining ApplicationFacade
        1. 11.3.2.1. Defining the Notification Names
      3. 11.3.3. Creating a Model for the Weather Client
        1. 11.3.3.1. ConditionVO
        2. 11.3.3.2. WeatherVO
        3. 11.3.3.3. Retrieving the Weather
        4. 11.3.3.4. GoogleWeatherLoader.as
        5. 11.3.3.5. GoogleWeatherParser.as
        6. 11.3.3.6. GoogleWeatherProxy.as
        7. 11.3.3.7. Retrieving the Handset Location
          1. 11.3.3.7.1. LocationProxy.as
        8. 11.3.3.8. Creating GoogleMapProxy.as
        9. 11.3.3.9. Utilizing the Device Clock
          1. 11.3.3.9.1. TimeProxy.as
          2. 11.3.3.9.2. FSCommandsProxy.as
      4. 11.3.4. Creating the Weather Client's Controller
        1. 11.3.4.1. Preparing the Application
          1. 11.3.4.1.1. StartupCommand.as
          2. 11.3.4.1.2. ModelPrepCommand.as
          3. 11.3.4.1.3. ViewPrepCommand.as
        2. 11.3.4.2. Getting the Weather
          1. 11.3.4.2.1. GetGoogleWeatherCommand.as
        3. 11.3.4.3. Retrieving the Location
          1. 11.3.4.3.1. GetMapLocationCommand.as
          2. 11.3.4.3.2. GetHandsetLocationCommand.as
        4. 11.3.4.4. Displaying the Weather
          1. 11.3.4.4.1. ViewCurrentConditionsCommand.as
          2. 11.3.4.4.2. ViewForecastConditionsCommand.as
          3. 11.3.4.4.3. QuitCommand.as
      5. 11.3.5. Exploring the View
        1. 11.3.5.1. CurrentConditionsMediator.as
        2. 11.3.5.2. ForecastConditionsMediator.as
        3. 11.3.5.3. SearchMediator.as
        4. 11.3.5.4. OptionsMediator.as
      6. 11.3.6. Viewing the Application in Device Central
    4. 11.4. SUMMARY
  17. 12. Using Sony Ericsson's Project Capuchin Platform Services API
    1. 12.1. PROJECT CAPUCHIN PLATFORM SERVICES OVERVIEW
      1. 12.1.1. Project Capuchin API Services
      2. 12.1.2. How to Use the API Methods
    2. 12.2. USING ACCELEROMETER
      1. 12.2.1. API Features
        1. 12.2.1.1. Initializing the Accelerometer API
        2. 12.2.1.2. Retrieving Updates Automatically
        3. 12.2.1.3. Using the Remove Listener Methods
        4. 12.2.1.4. Retrieving Device Orientation and Axis Values on Demand
      2. 12.2.2. Testing the API in Device Central
        1. 12.2.2.1. Using the Accelerometer Test Data
    3. 12.3. USING BLUETOOTH
      1. 12.3.1. API Features
        1. 12.3.1.1. Searching for Other Devices
        2. 12.3.1.2. Using the Bluetooth Test Data
    4. 12.4. USING CALENDAR
      1. 12.4.1. API Features
        1. 12.4.1.1. Creating a Calendar Event
    5. 12.5. USING CONTACTS
      1. 12.5.1. API Features
        1. 12.5.1.1. Adding Contacts to a Phone Book
        2. 12.5.1.2. Filtering Contacts
    6. 12.6. USING FILE
      1. 12.6.1. API Features
        1. 12.6.1.1. Reading Directories
    7. 12.7. USING I18N
      1. 12.7.1. API Features
        1. 12.7.1.1. Internationalizing Currency
        2. 12.7.1.2. Formatting the Date and Time
    8. 12.8. USING MESSAGING
      1. 12.8.1. API Features
        1. 12.8.1.1. Sending SMS
    9. 12.9. USING PERSISTENCY
      1. 12.9.1. API Features
        1. 12.9.1.1. Saving and Retrieving Data
        2. 12.9.1.2. Defining Key and Storage Names
        3. 12.9.1.3. Login Example
    10. 12.10. USING RADIO
      1. 12.10.1. API Features
        1. 12.10.1.1. Listening to the Radio
        2. 12.10.1.2. Retrieving Presets
        3. 12.10.1.3. Using RDS Information
        4. 12.10.1.4. Searching for Radio Frequencies
    11. 12.11. OTHER PROJECT CAPUCHIN SERVICES
      1. 12.11.1. Location
      2. 12.11.2. Multimedia
    12. 12.12. SUMMARY
  18. 13. Packaging Flash Lite Applications for Distribution
    1. 13.1. PACKAGING CONTENT
      1. 13.1.1. Packaging for Different Platforms
        1. 13.1.1.1. Windows Mobile Platform
        2. 13.1.1.2. Symbian S60 Platform
        3. 13.1.1.3. Java Platform
    2. 13.2. USING SWF2JAR
      1. 13.2.1. Creating a .jar File
    3. 13.3. CREATING A .SIS FILE
      1. 13.3.1. Obtaining a Unique Identifier (UID)
      2. 13.3.2. Creating the Package (PKG) File
        1. 13.3.2.1. Examining the imageViewer.pkg File Contents
          1. 13.3.2.1.1. Language
          2. 13.3.2.1.2. Package Header
          3. 13.3.2.1.3. Target Device or Platform
          4. 13.3.2.1.4. Vendor Name
          5. 13.3.2.1.5. Files to Package and Installation Paths
      3. 13.3.3. Using makesis.exe
    4. 13.4. APPLICATION SIGNING
      1. 13.4.1. Certificates
      2. 13.4.2. Untrusted Content
      3. 13.4.3. Using makekeys.sis
        1. 13.4.3.1. Creating a Certificate and a Private Key
      4. 13.4.4. Using signsis.exe
        1. 13.4.4.1. Signing a .sis File
        2. 13.4.4.2. Self-Signing Is Signing but Still Untrusted
      5. 13.4.5. Signing for Windows Mobile
      6. 13.4.6. Signing for Symbian S60
      7. 13.4.7. Signing for Java
      8. 13.4.8. Signing Programs
        1. 13.4.8.1. Symbian Signed
      9. 13.4.9. Publishing to Aggregators
    5. 13.5. APPLICATION ICONS
      1. 13.5.1. Using mifconv.exe
      2. 13.5.2. Using epocrc.exe
        1. 13.5.2.1. Defining the Localizable Registration Information
        2. 13.5.2.2. Defining the Application's Registration Information
    6. 13.6. NOKIA FLASH PACKAGING TOOL
    7. 13.7. INTRODUCING OVI FROM NOKIA
      1. 13.7.1. The Ovi Store
        1. 13.7.1.1. Become an Ovi Publisher
    8. 13.8. INTRODUCING PLAYNOW ARENA FROM SONY ERICSSON
      1. 13.8.1. Sony Ericsson Content Submission
        1. 13.8.1.1. Submissions Procedure
    9. 13.9. SUMMARY
  19. A. Flash Lite 3.x ActionScript 2.0 Quick Reference: From Array to XMLSocket
    1. A.1. ARRAY
    2. A.2. BOOLEAN
    3. A.3. BUTTON
    4. A.4. COLOR
    5. A.5. DATE
    6. A.6. ERROR
    7. A.7. EXTENDEDKEY
    8. A.8. FLASH.DISPLAY.BITMAPDATA
    9. A.9. FLASH.GEOM.COLORTRANSFORM
    10. A.10. FLASH.GEOM.MATRIX
    11. A.11. FLASH.GEOM.POINT
    12. A.12. FLASH.GEOM.RECTANGLE
    13. A.13. FLASH.GEOM.TRANSFORM
    14. A.14. FUNCTION
    15. A.15. GLOBAL
    16. A.16. KEY
    17. A.17. LOADVARS
    18. A.18. LOCALCONNECTION
    19. A.19. MATH
    20. A.20. MOUSE
    21. A.21. MOVIECLIP
    22. A.22. MOVIECLIPLOADER
    23. A.23. NETCONNECTION
    24. A.24. NETSTREAM
    25. A.25. NUMBER
    26. A.26. OBJECT
    27. A.27. SELECTION
    28. A.28. SHAREDOBJECT
    29. A.29. SOUND
    30. A.30. STAGE
    31. A.31. STRING
    32. A.32. SYSTEM.CAPABILITIES
    33. A.33. SYSTEM.SECURITY
    34. A.34. TEXTFIELD
    35. A.35. TEXTFORMAT
    36. A.36. VIDEO
    37. A.37. XML
    38. A.38. XMLNODE
    39. A.39. XMLSOCKET