|       |      |   Copyright  |  
  |       |      |   Dedication  |  
  |       |      |   Preface  |  
  |       |      |      |   Remoting: More Than Just a Name  |  
  |       |      |      |   What Is Remoting Used For?  |  
  |       |      |      |   What This Book Contains  |  
  |       |      |      |   What This Book Is Not  |  
  |       |      |      |   The Book at a Glance  |  
  |       |      |      |   We'd Like to Hear from You  |  
  |       |      |      |   Future Versions of Flash  |  
  |       |      |      |   Acknowledgments  |  
      |  
  |       |      |   Part I:  Remoting Fundamentals  |  
  |       |      |      |   Chapter 1.  Introduction to Flash Remoting  |  
  |       |      |      |   Section 1.1.  What Is Flash Remoting?  |  
  |       |      |      |   Section 1.2.  How Does Flash Remoting Work?  |  
  |       |      |      |   Section 1.3.  Benefits  |  
  |       |      |      |   Section 1.4.  Flash Remoting Requirements  |  
  |       |      |      |   Section 1.5.  Supported Platforms  |  
  |       |      |      |   Section 1.6.  Hello World  |  
  |       |      |      |   Section 1.7.  Workflow Example  |  
  |       |      |      |   Section 1.8.  Architecture for Flash Remoting Applications  |  
  |       |      |      |   Section 1.9.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 2.  Installing, Configuring, and Using Flash Remoting  |  
  |       |      |      |   Section 2.1.  Installing Flash Remoting  |  
  |       |      |      |   Section 2.2.  Naming Your Services  |  
  |       |      |      |   Section 2.3.  The Authoring Environment  |  
  |       |      |      |   Section 2.4.  Sequence of Events in Flash  |  
  |       |      |      |   Section 2.5.  Making a Remote Call  |  
  |       |      |      |   Section 2.6.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 3.  Client/Server Interaction, UI Components, and RecordSets  |  
  |       |      |      |   Section 3.1.  User Interface Components  |  
  |       |      |      |   Section 3.2.  Flash UI Components Set 2 and Flash Charting Controls  |  
  |       |      |      |   Section 3.3.  Macromedia's DRK  |  
  |       |      |      |   Section 3.4.  Text Objects  |  
  |       |      |      |   Section 3.5.  Building Forms in Flash MX  |  
  |       |      |      |   Section 3.6.  The RecordSet Class  |  
  |       |      |      |   Section 3.7.  DataGlue  |  
  |       |      |      |   Section 3.8.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 4.  Flash Remoting Internals  |  
  |       |      |      |   Section 4.1.  The NetConnection Class  |  
  |       |      |      |   Section 4.2.  Using NetServices  |  
  |       |      |      |   Section 4.3.  Creating Responder Functions  |  
  |       |      |      |   Section 4.4.  RecordSet Object  |  
  |       |      |      |   Section 4.5.  The Timeline  |  
  |       |      |      |   Section 4.6.  Catching Errors  |  
  |       |      |      |   Section 4.7.  Registering Objects  |  
  |       |      |      |   Section 4.8.  Wrapping Up  |  
      |  
      |  
  |       |      |   Part II:  The Server-Side Languages  |  
  |       |      |      |   Chapter 5.  Flash Remoting and ColdFusion MX  |  
  |       |      |      |   Section 5.1.  Introduction to ColdFusion MX  |  
  |       |      |      |   Section 5.2.  How ColdFusion Fits into Flash Applications  |  
  |       |      |      |   Section 5.3.  Service Name Mappings  |  
  |       |      |      |   Section 5.4.  ColdFusion Pages Versus ColdFusion Components  |  
  |       |      |      |   Section 5.5.  Loading Query Data Incrementally  |  
  |       |      |      |   Section 5.6.  ColdFusion Security: Authenticating Users  |  
  |       |      |      |   Section 5.7.  Updating Data on the Server  |  
  |       |      |      |   Section 5.8.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 6.  Server-Side ActionScript  |  
  |       |      |      |   Section 6.1.  What Is Server-Side ActionScript?  |  
  |       |      |      |   Section 6.2.  The CF Object  |  
  |       |      |      |   Section 6.3.  When to Use Server-Side ActionScript  |  
  |       |      |      |   Section 6.4.  Datatype Conversions  |  
  |       |      |      |   Section 6.5.  Handling Errors with try/catch  |  
  |       |      |      |   Section 6.6.  Extending Server-Side ActionScript with Java  |  
  |       |      |      |   Section 6.7.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 7.  Flash Remoting and Java  |  
  |       |      |      |   Section 7.1.  The Flash Remoting Gateway  |  
  |       |      |      |   Section 7.2.  Supported Platforms  |  
  |       |      |      |   Section 7.3.  Setting Up Flash Remoting for J2EE  |  
  |       |      |      |   Section 7.4.  Service Types  |  
  |       |      |      |   Section 7.5.  Datatype Conversions  |  
  |       |      |      |   Section 7.6.  Service Lookup  |  
  |       |      |      |   Section 7.7.  Invoking Service Methods  |  
  |       |      |      |   Section 7.8.  Architecture and Design  |  
  |       |      |      |   Section 7.9.  Referencing the Request and Session  |  
  |       |      |      |   Section 7.10.  Saving and Sharing State  |  
  |       |      |      |   Section 7.11.  Databinding  |  
  |       |      |      |   Section 7.12.  Security  |  
  |       |      |      |   Section 7.13.  OpenAMF  |  
  |       |      |      |   Section 7.14.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 8.  Flash Remoting and .NET  |  
  |       |      |      |   Section 8.1.  Overview of .NET  |  
  |       |      |      |   Section 8.2.  Connecting to .NET  |  
  |       |      |      |   Section 8.3.  Datatype Conversions  |  
  |       |      |      |   Section 8.4.  Database Access with ADO.NET  |  
  |       |      |      |   Section 8.5.  State Management  |  
  |       |      |      |   Section 8.6.  Error Handling in Flash Remoting with .NET  |  
  |       |      |      |   Section 8.7.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 9.  Flash Remoting and PHP  |  
  |       |      |      |   Section 9.1.  Introduction to PHP  |  
  |       |      |      |   Section 9.2.  Installing AMFPHP  |  
  |       |      |      |   Section 9.3.  Datatype Conversions  |  
  |       |      |      |   Section 9.4.  Using AMFPHP with Web Services  |  
  |       |      |      |   Section 9.5.  Using AMFPHP with PHP Classes  |  
  |       |      |      |   Section 9.6.  Working with a Database  |  
  |       |      |      |   Section 9.7.  Wrapping Up  |  
      |  
      |  
  |       |      |   Part III:  Advanced Flash Remoting  |  
  |       |      |      |   Chapter 10.  Calling Web Services from Flash Remoting  |  
  |       |      |      |   Section 10.1.  What Is a Web Service?  |  
  |       |      |      |   Section 10.2.  Why Use Flash Remoting?  |  
  |       |      |      |   Section 10.3.  Web Services from a ColdFusion Server  |  
  |       |      |      |   Section 10.4.  Web Services from an ASP.NET Server  |  
  |       |      |      |   Section 10.5.  Wrapping J2EE and JRun Web Services  |  
  |       |      |      |   Section 10.6.  Web Services from PHP  |  
  |       |      |      |   Section 10.7.  BabelFish Web Service  |  
  |       |      |      |   Section 10.8.  Datatype Conversions  |  
  |       |      |      |   Section 10.9.  Creating a Flash MX Web Service Extension  |  
  |       |      |      |   Section 10.10.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 11.  Extending Objects and UI Controls  |  
  |       |      |      |   Section 11.1.  Principles Behind UI Components  |  
  |       |      |      |   Section 11.2.  DataProviderClass and DataGlue  |  
  |       |      |      |   Section 11.3.  Enhancing a Standard Control  |  
  |       |      |      |   Section 11.4.  Enhancing the RecordSet Class for Interactivity  |  
  |       |      |      |   Section 11.5.  Adding Validation to a TextField  |  
  |       |      |      |   Section 11.6.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 12.  Flash Remoting Best Practices  |  
  |       |      |      |   Section 12.1.  Separation of Tasks  |  
  |       |      |      |   Section 12.2.  Separation of Functionality  |  
  |       |      |      |   Section 12.3.  Server-Proofing the Application  |  
  |       |      |      |   Section 12.4.  Component Use  |  
  |       |      |      |   Section 12.5.  Clean API  |  
  |       |      |      |   Section 12.6.  Loops and Repeated Operations  |  
  |       |      |      |   Section 12.7.  OOP or Not OOP  |  
  |       |      |      |   Section 12.8.  ColdFusion RecordSets  |  
  |       |      |      |   Section 12.9.  Implementing Caching  |  
  |       |      |      |   Section 12.10.  What to Walk Away With  |  
  |       |      |      |   Section 12.11.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 13.  Testing and Debugging  |  
  |       |      |      |   Section 13.1.  Debugging Flash Remoting Applications  |  
  |       |      |      |   Section 13.2.  Trapping Errors  |  
  |       |      |      |   Section 13.3.  The Flash ActionScript Debugger  |  
  |       |      |      |   Section 13.4.  NetConnection Debugger  |  
  |       |      |      |   Section 13.5.  NetDebug.as  |  
  |       |      |      |   Section 13.6.  Trace Debugging  |  
  |       |      |      |   Section 13.7.  Testing Server-Side Code  |  
  |       |      |      |   Section 13.8.  Using a TCP Trace Utility  |  
  |       |      |      |   Section 13.9.  Debugging SQL Code  |  
  |       |      |      |   Section 13.10.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 14.  Real-World Application  |  
  |       |      |      |   Section 14.1.  General Considerations  |  
  |       |      |      |   Section 14.2.  Requirements  |  
  |       |      |      |   Section 14.3.  Specifications  |  
  |       |      |      |   Section 14.4.  The Modules  |  
  |       |      |      |   Section 14.5.  Flash Remoting Code  |  
  |       |      |      |   Section 14.6.  Testing and Debugging  |  
  |       |      |      |   Section 14.7.  Completed Application  |  
  |       |      |      |   Section 14.8.  Future Expansion  |  
  |       |      |      |   Section 14.9.  Wrapping Up  |  
      |  
  |       |      |      |   Chapter 15.  Flash Remoting API  |  
  |       |      |      |   Section 15.1.  Entry Headings  |  
  |       |      |      |   DataGlue Object  |  
  |       |      |      |   DataGlue.bindFormatFunction( ) Method  |  
  |       |      |      |   DataGlue.bindFormatStrings( ) Method  |  
  |       |      |      |   NetConnection Class  |  
  |       |      |      |   NetConnection.addHeader( ) Method  |  
  |       |      |      |   NetConnection.call( ) Method  |  
  |       |      |      |   NetConnection.clone( ) Method  |  
  |       |      |      |   NetConnection.close( ) Method  |  
  |       |      |      |   NetConnection.connect( ) Method  |  
  |       |      |      |   NetConnection.getDebugConfig( ) Method  |  
  |       |      |      |   NetConnection.getDebugId( ) Method  |  
  |       |      |      |   NetConnection.getService( ) Method  |  
  |       |      |      |   NetConnection.ReplaceGatewayUrl( ) Method  |  
  |       |      |      |   NetConnection.RequestPersistentHeader( ) Method  |  
  |       |      |      |   NetConnection.setCredentials( ) Method  |  
  |       |      |      |   NetConnection.setDebugId( ) Method  |  
  |       |      |      |   NetConnection.trace( ) Method  |  
  |       |      |      |   NetDebug Object  |  
  |       |      |      |   NetDebug.trace( ) Method  |  
  |       |      |      |   NetDebugConfig Class  |  
  |       |      |      |   NetDebugConfig.getDebug( ) Method  |  
  |       |      |      |   NetDebugConfig.setDebug( ) Method  |  
  |       |      |      |   NetServices Object  |  
  |       |      |      |   NetServices.createGatewayConnection( ) Method  |  
  |       |      |      |   NetServices.getVersion( ) Method  |  
  |       |      |      |   NetServices.setDefaultGateway( ) Method  |  
  |       |      |      |   RecordSet Class  |  
  |       |      |      |   RecordSet.addItem( ) Method  |  
  |       |      |      |   RecordSet.addItemAt( ) Method  |  
  |       |      |      |   RecordSet.addView( ) Method  |  
  |       |      |      |   RecordSet.filter( ) Method  |  
  |       |      |      |   RecordSet.getColumnNames( ) Method  |  
  |       |      |      |   RecordSet.getItemAt( ) Method  |  
  |       |      |      |   RecordSet.getItemID( ) Method  |  
  |       |      |      |   RecordSet.getLength( ) Method  |  
  |       |      |      |   RecordSet.getNumberAvailable( ) Method  |  
  |       |      |      |   RecordSet.isFullyPopulated( ) Method  |  
  |       |      |      |   RecordSet.isLocal( ) Method  |  
  |       |      |      |   RecordSet.removeAll( ) Method  |  
  |       |      |      |   RecordSet.removeItemAt( ) Method  |  
  |       |      |      |   RecordSet.replaceItemAt( ) Method  |  
  |       |      |      |   RecordSet.setDeliveryMode( ) Method  |  
  |       |      |      |   RecordSet.setField( ) Method  |  
  |       |      |      |   RecordSet. sort ( ) Method  |  
  |       |      |      |   RecordSet.sortItemsBy( ) Method  |  
      |  
      |  
  |       |      |   Part IV:  Appendixes  |  
  |       |      |      |   Appendix A.  ActionScript Datatype Conversion  |  
  |       |      |      |   Section A.1.  ColdFusion Datatype Conversion  |  
  |       |      |      |   Section A.2.  Java Datatype Conversion  |  
  |       |      |      |   Section A.3.  C# Datatype Conversion  |  
  |       |      |      |   Section A.4.  Visual Basic Datatype Conversion  |  
  |       |      |      |   Section A.5.  PHP Datatype Conversion  |  
  |       |      |      |   Section A.6.  SOAP Datatype Conversion  |  
      |  
  |       |      |      |   Appendix B.  Books and Online Resources  |  
  |       |      |      |   Section B.1.  Flash Remoting Resources  |  
  |       |      |      |   Section B.2.  Flash and ActionScript Resources  |  
  |       |      |      |   Section B.3.  Other Books of Interest  |  
  |       |      |      |   Section B.4.  Other Links of Interest  |  
      |  
  |       |      |      |   Appendix C.  Specification and Implementation for a Real-World Application  |  
  |       |      |      |   Section C.1.  Notes from the Designer  |  
      |  
      |  
  |       |      |   Colophon  |  
  |       |      |   Index  |