You are previewing Flash Remoting: The Definitive Guide.
O'Reilly logo
Flash Remoting: The Definitive Guide

Book Description

Flash Remoting MX lets developers easily integrate rich Macromedia Flash content with applications that are built using Macromedia ColdFusion MX, Microsoft .NET, Java, PHP, or SOAP-based web services. The result is complex client/server applications that more closely resemble desktop applications than traditional web pages. Gone is the click/wait/reload approach of HTML. Your web application uses Flash as the front end while Flash Remoting handles the communication behind the scenes with the application server. All the end user knows is that it's fast and flexible. The potential uses for Flash Remoting are endless. Flash Remoting: The Definitive Guide will help you understand this breakthrough technology and use it to build your own Rich Internet Applications (RIAs). Build applications that connect to a database, file system, or other server-side technologies. Or, use Flash Remoting to create:

  • online stores that feature catalogs and shopping cart systems

  • sound and video clip libraries

  • banner ads with built-in shopping carts, click-through tracking, and site search capabilities

  • new controls that can be used in place of HTML

  • extensions to Flash, Dreamweaver, Fireworks, and more

  • front-ends to databases for administrators

The book begins with Flash Remoting basics: setup, installation and an introduction to its underlying concepts. Next, you'll explore the Flash's User Interface components as they relate to Flash Remoting. Then, you'll gain insights into Flash Remoting internals and the Remoting API. The book is rich with examples that you will be able to run on your own system. The next section focuses on the server-side environment that you'll use for your applications. Individual chapters cover Flash Remoting with ColdFusion, Server-Side ActionScript, Java, ASP.NET, and PHP. The last section covers more advanced Flash Remoting techniques, such as calling web services from Flash Remoting, extending objects and UI controls, best practices, and debugging. Plus there is a detailed chapter demonstrating a real-world application. The book concludes with a Flash Remoting API reference. Developers who are looking to create Rich Internet Applications with Flash will find Flash Remoting: The Definitive Guide indispensable.

Table of Contents

  1. Flash Remoting: The Definitive Guide
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. Preface
      1. Remoting: More Than Just a Name
      2. What Is Remoting Used For?
      3. What This Book Contains
      4. What This Book Is Not
      5. The Book at a Glance
        1. Part I: Remoting Fundamentals
        2. Part II: The Server-Side Languages
        3. Part III: Advanced Flash Remoting
        4. Part IV: Appendixes
        5. Terminology Conventions
        6. Typographical Conventions
      6. We'd Like to Hear from You
      7. Future Versions of Flash
      8. Acknowledgments
    3. I. Remoting Fundamentals
      1. 1. Introduction to Flash Remoting
        1. 1.1. What Is Flash Remoting?
        2. 1.2. How Does Flash Remoting Work?
          1. 1.2.1. Action Message Format
        3. 1.3. Benefits
          1. 1.3.1. Why Not XML?
          2. 1.3.2. HTML and Server-Side Code
          3. 1.3.3. Session Management in Flash
        4. 1.4. Flash Remoting Requirements
          1. 1.4.1. Macromedia Flash Authoring Tool
          2. 1.4.2. Macromedia Flash Remoting Components
          3. 1.4.3. Macromedia Flash Remoting Gateway
        5. 1.5. Supported Platforms
          1. 1.5.1. Macromedia ColdFusion MX
          2. 1.5.2. J2EE Application Servers and Java Servlet Engines
          3. 1.5.3. Macromedia JRun 4
          4. 1.5.4. Microsoft ASP.NET Servers
        6. 1.6. Hello World
          1. 1.6.1. Flash ActionScript Code
          2. 1.6.2. Server-Side Code
            1. 1.6.2.1. ColdFusion MX
            2. 1.6.2.2. Server-Side ActionScript
            3. 1.6.2.3. Java using JRun 4 or other J2EE servers
            4. 1.6.2.4. Microsoft .NET server
            5. 1.6.2.5. PHP
            6. 1.6.2.6. Web service
          3. 1.6.3. Overview
        7. 1.7. Workflow Example
        8. 1.8. Architecture for Flash Remoting Applications
          1. 1.8.1. Presentation Tier
          2. 1.8.2. Middle Tier
          3. 1.8.3. Data Tier
        9. 1.9. Wrapping Up
      2. 2. Installing, Configuring, and Using Flash Remoting
        1. 2.1. Installing Flash Remoting
          1. 2.1.1. ColdFusion MX
          2. 2.1.2. JRun 4
          3. 2.1.3. Other J2EE Servers
          4. 2.1.4. ASP.NET
          5. 2.1.5. PHP with AMFPHP
          6. 2.1.6. Typical Installations
        2. 2.2. Naming Your Services
          1. 2.2.1. Creating the Sample Directories and Package Structure
          2. 2.2.2. The Services
        3. 2.3. The Authoring Environment
          1. 2.3.1. Flash Remoting Components
            1. 2.3.1.1. NetServices class
            2. 2.3.1.2. RecordSet class
            3. 2.3.1.3. DataGlue class
            4. 2.3.1.4. NetDebug class
          2. 2.3.2. Flash Remoting Windows and Menu Options
            1. 2.3.2.1. NetConnection Debugger
            2. 2.3.2.2. Service Browser
            3. 2.3.2.3. Help menu
          3. 2.3.3. The Actions Panel
            1. 2.3.3.1. Setting up the Actions panel
            2. 2.3.3.2. Code hints and code completion
          4. 2.3.4. Additional Flash Remoting Developer's Tools
            1. 2.3.4.1. Database server and development environment
            2. 2.3.4.2. Local copy of application server
            3. 2.3.4.3. Code editor
            4. 2.3.4.4. SWF decompiler
            5. 2.3.4.5. Extensions
        4. 2.4. Sequence of Events in Flash
        5. 2.5. Making a Remote Call
          1. 2.5.1. Initialize Objects as Needed
          2. 2.5.2. Create a Connection and Service Object
          3. 2.5.3. Create a Service Object
          4. 2.5.4. Create Callback Methods or Functions
          5. 2.5.5. Call the Remote Service
          6. 2.5.6. Wait for the Response
          7. 2.5.7. Act on the Response or Error
          8. 2.5.8. The Server-Side Code
            1. 2.5.8.1. ColdFusion MX
            2. 2.5.8.2. Server-Side ActionScript
            3. 2.5.8.3. J2EE
            4. 2.5.8.4. ASP.NET
            5. 2.5.8.5. PHP
        6. 2.6. Wrapping Up
      3. 3. Client/Server Interaction, UI Components, and RecordSets
        1. 3.1. User Interface Components
        2. 3.2. Flash UI Components Set 2 and Flash Charting Controls
        3. 3.3. Macromedia's DRK
          1. 3.3.1. UI Components Set 3
          2. 3.3.2. DataGrid Control
          3. 3.3.3. Other Content, DRKs, and Components
        4. 3.4. Text Objects
          1. 3.4.1. Static Text Fields
          2. 3.4.2. Dynamic Text Fields
          3. 3.4.3. Input Text Fields
          4. 3.4.4. Adding Text Fields from ActionScript
        5. 3.5. Building Forms in Flash MX
        6. 3.6. The RecordSet Class
          1. 3.6.1. Structure of a RecordSet Object
          2. 3.6.2. Using the RecordSet Class
          3. 3.6.3. Flash Remoting Using a RecordSet
            1. 3.6.3.1. ColdFusion
            2. 3.6.3.2. Server-Side ActionScript
            3. 3.6.3.3. JRun and J2EE
            4. 3.6.3.4. ASP.NET
            5. 3.6.3.5. PHP
            6. 3.6.3.6. The client-side ActionScript code
        7. 3.7. DataGlue
          1. 3.7.1. Using the DataGlue Class
          2. 3.7.2. Gluing the DataGrid
          3. 3.7.3. Gluing the Dynamic Chart Components
        8. 3.8. Wrapping Up
      4. 4. Flash Remoting Internals
        1. 4.1. The NetConnection Class
        2. 4.2. Using NetServices
          1. 4.2.1. Establishing the Gateway Connection
          2. 4.2.2. Creating the Service Object
            1. 4.2.2.1. NetServiceProxy
            2. 4.2.2.2. NetServiceProxyResponder
          3. 4.2.3. User Authentication
          4. 4.2.4. Using the NetConnection Object Directly
            1. 4.2.4.1. NetConnection debugging methods
        3. 4.3. Creating Responder Functions
          1. 4.3.1. Using onResult( ) and onStatus( ) Responder Functions
          2. 4.3.2. Using Named Responder Functions
          3. 4.3.3. Response Dispatch Hierarchy
          4. 4.3.4. Choosing the Appropriate Type of Responder Function
        4. 4.4. RecordSet Object
          1. 4.4.1. The RecordSet Constructor
          2. 4.4.2. The addItem( ) Method
          3. 4.4.3. The addItemAt( ) Method
          4. 4.4.4. The getLength( ) Method
          5. 4.4.5. The getItemAt( ) Method
          6. 4.4.6. The removeItemAt( ) Method
          7. 4.4.7. The replaceItemAt( ) Method
          8. 4.4.8. The getItemID( ) Method
          9. 4.4.9. The setField( ) Method
          10. 4.4.10. The getColumnNames( ) Method
          11. 4.4.11. The filter( ) Method
          12. 4.4.12. The getNumberAvailable( ) Method
          13. 4.4.13. The setDeliveryMode( ) Method
          14. 4.4.14. The sortItemsBy( ) and sort( ) Methods
          15. 4.4.15. The addView( ) Method
          16. 4.4.16. The removeAll( ) Method
        5. 4.5. The Timeline
        6. 4.6. Catching Errors
          1. 4.6.1. Error Types
          2. 4.6.2. Trapping Server-Side Errors
        7. 4.7. Registering Objects
          1. 4.7.1. Using Object.registerClass( )
          2. 4.7.2. Registering Objects for ColdFusion MX, Java, ASP.NET, and PHP
            1. 4.7.2.1. ColdFusion MX
            2. 4.7.2.2. Java
            3. 4.7.2.3. ASP.NET
            4. 4.7.2.4. PHP
          3. 4.7.3. The Real Power of Object.registerClass( )
        8. 4.8. Wrapping Up
    4. II. The Server-Side Languages
      1. 5. Flash Remoting and ColdFusion MX
        1. 5.1. Introduction to ColdFusion MX
        2. 5.2. How ColdFusion Fits into Flash Applications
          1. 5.2.1. Datatype Conversions
            1. 5.2.1.1. Datatypes in Flash
            2. 5.2.1.2. Datatypes in ColdFusion
            3. 5.2.1.3. Passing data between Flash and ColdFusion
          2. 5.2.2. Flash Variable Scope
        3. 5.3. Service Name Mappings
          1. 5.3.1. Order of Service Lookup
          2. 5.3.2. Invoking a ColdFusion Page Service from Flash
            1. 5.3.2.1. Using the Flash variable scope to pass data between Flash and a ColdFusion page
            2. 5.3.2.2. Using named parameters to pass data from a Flash application to a ColdFusion page
            3. 5.3.2.3. Returning data to Flash from a ColdFusion page
          3. 5.3.3. Flash Remoting Services as ColdFusion Components
            1. 5.3.3.1. The theory behind ColdFusion Components
            2. 5.3.3.2. The structure of ColdFusion Components
            3. 5.3.3.3. The <cfcomponent> tag
            4. 5.3.3.4. The <cffunction> tag
            5. 5.3.3.5. The <cfargument> tag
            6. 5.3.3.6. Organizing ColdFusion Components using packages
            7. 5.3.3.7. Invoking ColdFusion Components From Flash
          4. 5.3.4. Examples of Flash Remoting Using ColdFusion Components
            1. 5.3.4.1. Using a ColdFusion Component to send email
            2. 5.3.4.2. Returning a Query object
            3. 5.3.4.3. Wrapping a Java class in a ColdFusion Component
          5. 5.3.5. ColdFusion Component Introspection
            1. 5.3.5.1. Discovering ColdFusion Components from Flash
        4. 5.4. ColdFusion Pages Versus ColdFusion Components
        5. 5.5. Loading Query Data Incrementally
          1. 5.5.1. Implementing Pageable Recordsets on the Server
          2. 5.5.2. Implementing Pageable Recordsets on the Client
          3. 5.5.3. Managing Incrementally Loaded Data by Hand
          4. 5.5.4. Passing the Page Size from Flash Dynamically
        6. 5.6. ColdFusion Security: Authenticating Users
          1. 5.6.1. Client-Side Security Implementation
          2. 5.6.2. Security on the Server
          3. 5.6.3. Using Role-Based Security with ColdFusion Components
        7. 5.7. Updating Data on the Server
          1. 5.7.1. Passing a Record to the Service Manually
            1. 5.7.1.1. The server-side code
            2. 5.7.1.2. The client-side code
            3. 5.7.1.3. Enhancing the ComboBox component
            4. 5.7.1.4. Response handlers
            5. 5.7.1.5. Calling the services
          2. 5.7.2. Passing a Record to the Service Automatically
            1. 5.7.2.1. The updateProducts( ) method
            2. 5.7.2.2. The client-side ActionScript
        8. 5.8. Wrapping Up
      2. 6. Server-Side ActionScript
        1. 6.1. What Is Server-Side ActionScript?
        2. 6.2. The CF Object
          1. 6.2.1. Using CF.http( )
            1. 6.2.1.1. Creating a proxy for a remote service
          2. 6.2.2. Using CF.query( )
            1. 6.2.2.1. CF.query( ) properties
            2. 6.2.2.2. The SQL argument
            3. 6.2.2.3. Retrieving results
            4. 6.2.2.4. Inserting, updating, and deleting results
        3. 6.3. When to Use Server-Side ActionScript
        4. 6.4. Datatype Conversions
        5. 6.5. Handling Errors with try/catch
          1. 6.5.1. Retrying the Query
          2. 6.5.2. Debugging
          3. 6.5.3. Finally
          4. 6.5.4. Custom Exception Objects
        6. 6.6. Extending Server-Side ActionScript with Java
          1. 6.6.1. The Principles of Extending SSAS
            1. 6.6.1.1. Adding a Sleep( ) function
            2. 6.6.1.2. Getting a directory list from the server
            3. 6.6.1.3. File methods on the server
            4. 6.6.1.4. Sending an email with Server-Side ActionScript
            5. 6.6.1.5. Retrieving emails using Server-Side ActionScript
          2. 6.6.2. Creating a CF.query( ) Method for JRun 4
        7. 6.7. Wrapping Up
      3. 7. Flash Remoting and Java
        1. 7.1. The Flash Remoting Gateway
        2. 7.2. Supported Platforms
        3. 7.3. Setting Up Flash Remoting for J2EE
          1. 7.3.1. Logging
        4. 7.4. Service Types
          1. 7.4.1. JavaBean Services
          2. 7.4.2. Java Class Services
          3. 7.4.3. Enterprise JavaBean (EJB) Services
          4. 7.4.4. Servlet Services
          5. 7.4.5. JMX MBean Services
          6. 7.4.6. Server-Side ActionScript (SSAS) Services
        5. 7.5. Datatype Conversions
          1. 7.5.1. ActionScript-to-Java Data Conversion
          2. 7.5.2. Java-to-ActionScript Data Conversion
            1. 7.5.2.1. ResultSet
            2. 7.5.2.2. PageableResultSet
            3. 7.5.2.3. Java object
          3. 7.5.3. Converting Using JavaBean Introspection
            1. 7.5.3.1. Converting datatypes from ActionScript to Java
            2. 7.5.3.2. Converting datatypes from Java to ActionScript
        6. 7.6. Service Lookup
          1. 7.6.1. Identifying Services
          2. 7.6.2. Locating Services
        7. 7.7. Invoking Service Methods
          1. 7.7.1. Invoking Service Methods on JavaBeans
          2. 7.7.2. Invoking Service Methods on Java Classes
          3. 7.7.3. Invoking Service Methods on EJBs
          4. 7.7.4. Invoking Service Methods on Servlets
          5. 7.7.5. Invoking Service Methods on MBeans
          6. 7.7.6. Exceptions
        8. 7.8. Architecture and Design
          1. 7.8.1. Use a Service-Oriented Architecture
          2. 7.8.2. Create a Business Delegate
        9. 7.9. Referencing the Request and Session
        10. 7.10. Saving and Sharing State
          1. 7.10.1. Using JavaBean Services to Store Session State
          2. 7.10.2. Using Servlet Services to Store Session State
        11. 7.11. Databinding
        12. 7.12. Security
          1. 7.12.1. User Authentication and Authorization
            1. 7.12.1.1. Container-Managed Security
            2. 7.12.1.2. Home-grown systems
            3. 7.12.1.3. Service authentication
          2. 7.12.2. Restricting Service Access
            1. 7.12.2.1. Use Java security
            2. 7.12.2.2. FlashGatekeeper
        13. 7.13. OpenAMF
        14. 7.14. Wrapping Up
      4. 8. Flash Remoting and .NET
        1. 8.1. Overview of .NET
        2. 8.2. Connecting to .NET
          1. 8.2.1. Connecting to an ASP.NET Page
            1. 8.2.1.1. Using code behind with ASP.NET pages
          2. 8.2.2. Connecting to a .NET Assembly
        3. 8.3. Datatype Conversions
          1. 8.3.1. Receiving Complex Datatypes from .NET
          2. 8.3.2. Sending Complex Datatypes to .NET
          3. 8.3.3. Convert Custom Classes to an ASObject
          4. 8.3.4. Receiving Arrays from .NET
          5. 8.3.5. Sending Arrays to .NET
        4. 8.4. Database Access with ADO.NET
          1. 8.4.1. Selecting from a Database
          2. 8.4.2. Manipulating a Database
          3. 8.4.3. Using an XML Data Source
          4. 8.4.4. Writing to an XML File
        5. 8.5. State Management
        6. 8.6. Error Handling in Flash Remoting with .NET
          1. 8.6.1. Catch Me If You Can
          2. 8.6.2. Exceptional Flash
        7. 8.7. Wrapping Up
      5. 9. Flash Remoting and PHP
        1. 9.1. Introduction to PHP
          1. 9.1.1. How PHP Fits into Flash Applications
        2. 9.2. Installing AMFPHP
          1. 9.2.1. Configuring AMFPHP for Web Services
        3. 9.3. Datatype Conversions
        4. 9.4. Using AMFPHP with Web Services
        5. 9.5. Using AMFPHP with PHP Classes
        6. 9.6. Working with a Database
        7. 9.7. Wrapping Up
    5. III. Advanced Flash Remoting
      1. 10. Calling Web Services from Flash Remoting
        1. 10.1. What Is a Web Service?
          1. 10.1.1. WSDL
          2. 10.1.2. UDDI
          3. 10.1.3. SOAP
        2. 10.2. Why Use Flash Remoting?
          1. 10.2.1. Limitations
        3. 10.3. Web Services from a ColdFusion Server
        4. 10.4. Web Services from an ASP.NET Server
        5. 10.5. Wrapping J2EE and JRun Web Services
        6. 10.6. Web Services from PHP
        7. 10.7. BabelFish Web Service
        8. 10.8. Datatype Conversions
          1. 10.8.1. Passing Complex Datatypes to and from Web Services
          2. 10.8.2. Passing Simple Arrays to Web Services
        9. 10.9. Creating a Flash MX Web Service Extension
        10. 10.10. Wrapping Up
      2. 11. Extending Objects and UI Controls
        1. 11.1. Principles Behind UI Components
        2. 11.2. DataProviderClass and DataGlue
        3. 11.3. Enhancing a Standard Control
          1. 11.3.1. Creating a ListBox with a Data-Driven Icon
          2. 11.3.2. Enhancing a ComboBox with Methods
            1. 11.3.2.1. Using pickValue( ) and pickLabel( )
            2. 11.3.2.2. Using setDefault( )
            3. 11.3.2.3. Using setDescriptor( )
        4. 11.4. Enhancing the RecordSet Class for Interactivity
          1. 11.4.1. The Current Record Functionality
          2. 11.4.2. Adding the glue( ) and recordChanged( ) Functionality
          3. 11.4.3. The setCurrentRecord( ) Method
          4. 11.4.4. Putting It Together
        5. 11.5. Adding Validation to a TextField
        6. 11.6. Wrapping Up
      3. 12. Flash Remoting Best Practices
        1. 12.1. Separation of Tasks
          1. 12.1.1. Designer
          2. 12.1.2. Client-Side ActionScript Programmer
          3. 12.1.3. Flash Remoting ActionScript Programmer
          4. 12.1.4. Database Programmer
          5. 12.1.5. Server-Side Programmer
          6. 12.1.6. HTML Developers
        2. 12.2. Separation of Functionality
        3. 12.3. Server-Proofing the Application
        4. 12.4. Component Use
          1. 12.4.1. Component Speed
          2. 12.4.2. Data Loading
        5. 12.5. Clean API
          1. 12.5.1. Reusable Code
          2. 12.5.2. Modularity
        6. 12.6. Loops and Repeated Operations
        7. 12.7. OOP or Not OOP
          1. 12.7.1. Procedural Programming
            1. 12.7.1.1. Task-oriented
            2. 12.7.1.2. Event-driven
            3. 12.7.1.3. Result handlers in procedural programming
            4. 12.7.1.4. Procedural example
          2. 12.7.2. Object-Oriented Programming
            1. 12.7.2.1. Everything is an object
            2. 12.7.2.2. OOP in Flash Remoting
            3. 12.7.2.3. How to create your objects
            4. 12.7.2.4. Responder objects in OOP
            5. 12.7.2.5. Problems with OOP
            6. 12.7.2.6. Callback example
            7. 12.7.2.7. Broadcasters
          3. 12.7.3. Mixing Procedural and Object-Oriented Code
        8. 12.8. ColdFusion RecordSets
        9. 12.9. Implementing Caching
        10. 12.10. What to Walk Away With
        11. 12.11. Wrapping Up
      4. 13. Testing and Debugging
        1. 13.1. Debugging Flash Remoting Applications
          1. 13.1.1. Types of Errors
          2. 13.1.2. Dissecting the Application
          3. 13.1.3. Consistency
          4. 13.1.4. Feature Creep
        2. 13.2. Trapping Errors
          1. 13.2.1. try/catch Blocks
        3. 13.3. The Flash ActionScript Debugger
          1. 13.3.1. Using the Debugger
            1. 13.3.1.1. The Watch window
            2. 13.3.1.2. The Locals window
            3. 13.3.1.3. The Call Stack
          2. 13.3.2. A Debugging Session
        4. 13.4. NetConnection Debugger
          1. 13.4.1. Parts of the Debugger
          2. 13.4.2. Using the NetConnection Debugger
            1. 13.4.2.1. Debugging a connection
            2. 13.4.2.2. Debugging method calls
            3. 13.4.2.3. Validating user data
            4. 13.4.2.4. System errors
        5. 13.5. NetDebug.as
        6. 13.6. Trace Debugging
        7. 13.7. Testing Server-Side Code
          1. 13.7.1. Debugging in ColdFusion
          2. 13.7.2. Debugging in Java
            1. 13.7.2.1. Server logs
          3. 13.7.3. Debugging in ASP.NET
            1. 13.7.3.1. Visual Studio.NET
            2. 13.7.3.2. ASP.NET Web Matrix
            3. 13.7.3.3. Server logs
        8. 13.8. Using a TCP Trace Utility
          1. 13.8.1. SOAP Trace Utility
          2. 13.8.2. Testing Client Calls
          3. 13.8.3. Tracing a Web Service
        9. 13.9. Debugging SQL Code
          1. 13.9.1. Database Errors
          2. 13.9.2. Query Optimization
        10. 13.10. Wrapping Up
      5. 14. Real-World Application
        1. 14.1. General Considerations
        2. 14.2. Requirements
        3. 14.3. Specifications
          1. 14.3.1. Users
          2. 14.3.2. Scripts
          3. 14.3.3. General
        4. 14.4. The Modules
          1. 14.4.1. Structure
          2. 14.4.2. Database
          3. 14.4.3. Defining Server-Side Services
          4. 14.4.4. Implementing Server-Side Services
            1. 14.4.4.1. The UserService service
            2. 14.4.4.2. The ScriptService service
            3. 14.4.4.3. The SiteService service
          5. 14.4.5. Client-Side ActionScript
            1. 14.4.5.1. Objects
            2. 14.4.5.2. Interface
            3. 14.4.5.3. ActionScript code
        5. 14.5. Flash Remoting Code
          1. 14.5.1. RemotingInit.as
          2. 14.5.2. ScriptObject.as
          3. 14.5.3. ScriptRepository.as
          4. 14.5.4. UserObject.as
          5. 14.5.5. SiteUtilityFunctions.as
          6. 14.5.6. UI.as
          7. 14.5.7. Flash User Interface Code
        6. 14.6. Testing and Debugging
        7. 14.7. Completed Application
        8. 14.8. Future Expansion
        9. 14.9. Wrapping Up
      6. 15. Flash Remoting API
        1. 15.1. Entry Headings
          1. Entry
        2. DataGlue Object
          1. DataGlue Object
        3. DataGlue.bindFormatFunction( ) Method
          1. DataGlue.bindFormatFunction( ) Method
        4. DataGlue.bindFormatStrings( ) Method
          1. DataGlue.bindFormatStrings( ) Method
        5. NetConnection Class
          1. NetConnection Class
        6. NetConnection.addHeader( ) Method
          1. NetConnection.addHeader( ) Method
        7. NetConnection.call( ) Method
          1. NetConnection.call( ) Method
        8. NetConnection.clone( ) Method
          1. NetConnection.clone( ) Method
        9. NetConnection.close( ) Method
          1. NetConnection.close( ) Method
        10. NetConnection.connect( ) Method
          1. NetConnection.connect( ) Method
        11. NetConnection.getDebugConfig( ) Method
          1. NetConnection.getDebugConfig( ) Method
        12. NetConnection.getDebugId( ) Method
          1. NetConnection.getDebugId( ) Method
        13. NetConnection.getService( ) Method
          1. NetConnection.getService( ) Method
        14. NetConnection.ReplaceGatewayUrl( ) Method
          1. NetConnection.ReplaceGatewayUrl( ) Method
        15. NetConnection.RequestPersistentHeader( ) Method
          1. NetConnection.RequestPersistentHeader( ) Method
        16. NetConnection.setCredentials( ) Method
          1. NetConnection.setCredentials( ) Method
        17. NetConnection.setDebugId( ) Method
          1. NetConnection.setDebugId( ) Method
        18. NetConnection.trace( ) Method
          1. NetConnection.trace( ) Method
        19. NetDebug Object
          1. NetDebug Object
        20. NetDebug.trace( ) Method
          1. NetDebug.trace( ) Method
        21. NetDebugConfig Class
          1. NetDebugConfig Class
        22. NetDebugConfig.getDebug( ) Method
          1. NetDebugConfig.getDebug( ) Method
        23. NetDebugConfig.setDebug( ) Method
          1. NetDebugConfig.setDebug( ) Method
        24. NetServices Object
          1. NetServices Object
        25. NetServices.createGatewayConnection( ) Method
          1. NetServices.createGatewayConnection( ) Method
        26. NetServices.getVersion( ) Method
          1. NetServices.getVersion( ) Method
        27. NetServices.setDefaultGateway( ) Method
          1. NetServices.setDefaultGateway( ) Method
        28. RecordSet Class
          1. RecordSet Class
        29. RecordSet.addItem( ) Method
          1. RecordSet.addItem( ) Method
        30. RecordSet.addItemAt( ) Method
          1. RecordSet.addItemAt( ) Method
        31. RecordSet.addView( ) Method
          1. RecordSet.addView( ) Method
        32. RecordSet.filter( ) Method
          1. RecordSet.filter( ) Method
        33. RecordSet.getColumnNames( ) Method
          1. RecordSet.getColumnNames( ) Method
        34. RecordSet.getItemAt( ) Method
          1. RecordSet.getItemAt( ) Method
        35. RecordSet.getItemID( ) Method
          1. RecordSet.getItemID( ) Method
        36. RecordSet.getLength( ) Method
          1. RecordSet.getLength( ) Method
        37. RecordSet.getNumberAvailable( ) Method
          1. RecordSet.getNumberAvailable( ) Method
        38. RecordSet.isFullyPopulated( ) Method
          1. RecordSet.isFullyPopulated( ) Method
        39. RecordSet.isLocal( ) Method
          1. RecordSet.isLocal( ) Method
        40. RecordSet.removeAll( ) Method
          1. RecordSet.removeAll( ) Method
        41. RecordSet.removeItemAt( ) Method
          1. RecordSet.removeItemAt( ) Method
        42. RecordSet.replaceItemAt( ) Method
          1. RecordSet.replaceItemAt( ) Method
        43. RecordSet.setDeliveryMode( ) Method
          1. RecordSet.setDeliveryMode( ) Method
        44. RecordSet.setField( ) Method
          1. RecordSet.setField( ) Method
        45. RecordSet.sort( ) Method
          1. RecordSet.sort( ) Method
        46. RecordSet.sortItemsBy( ) Method
          1. RecordSet.sortItemsBy( ) Method
    6. IV. Appendixes
      1. A. ActionScript Datatype Conversion
        1. A.1. ColdFusion Datatype Conversion
        2. A.2. Java Datatype Conversion
        3. A.3. C# Datatype Conversion
        4. A.4. Visual Basic Datatype Conversion
        5. A.5. PHP Datatype Conversion
        6. A.6. SOAP Datatype Conversion
      2. B. Books and Online Resources
        1. B.1. Flash Remoting Resources
          1. B.1.1. Macromedia Resources
          2. B.1.2. Open Source Flash Remoting Projects
          3. B.1.3. Articles, Blogs, and Utilities
        2. B.2. Flash and ActionScript Resources
          1. B.2.1. Books
          2. B.2.2. Links
        3. B.3. Other Books of Interest
          1. B.3.1. Dreamweaver
          2. B.3.2. ASP.NET
          3. B.3.3. Java
          4. B.3.4. ColdFusion
          5. B.3.5. Web Services
          6. B.3.6. SQL
          7. B.3.7. XML
          8. B.3.8. PHP
          9. B.3.9. Other Technologies
        4. B.4. Other Links of Interest
          1. B.4.1. ASP.NET
          2. B.4.2. ColdFusion
          3. B.4.3. XML
          4. B.4.4. Web Services
          5. B.4.5. PHP
          6. B.4.6. Java
          7. B.4.7. Database Links
          8. B.4.8. Other Technologies
      3. C. Specification and Implementation for a Real-World Application
        1. C.1. Notes from the Designer
    7. About the Author
    8. Colophon
    9. SPECIAL OFFER: Upgrade this ebook with O’Reilly