background image

80

Chapter 4:  Using Flash Remoting Data in ActionScript

Sorting record sets

To sort the records of a RecordSet object, use the 

sortItems

 and 

sortItemBy()

 methods. The 

sortItemBy()

 method performs an ascending (the default) or descending sort on the records in 

the RecordSet object. The 

sortItems()

 method requires a comparison function as an argument, 

and uses that function to sort the records. The 

sortItemsBy()

 method is implemented natively 

in Flash Player 7.x and is substantially faster than the 

sortItems()

 method.

Sorting a RecordSet object changes the order of the records in the object, but does not otherwise 
change the object. Subsequent calls to the 

getItemAt()

 method return records according to the 

new order. After you sort a RecordSet object that was returned from an application, the object no 
longer reflects the order of the records on the server-side record set.

The following one-line example sorts the myRecordSet object according to the value of the 
DepartmentName field in descending order:

myRecordSet.SortItemsBy("DepartmentName", null, Array.DESCENDING);

The following example sorts a record set prior to displaying it in a ListBox UI component:

function onCustData( re:ResultEvent ):Void {

var rs:RecordSet = RecordSet( re.result );
rs.sortItemsBy(["TotalSales","Name"], null, Array.DESCENDING | 
Array.NUMERIC);
DataGlue.bindFormatFunction( cust_ListBox, rs, formatSales);

}

In this example, 

cust_ListBox

 represents a ListBox UI component in the Flash application. In 

the 

rs.sortItemsBy()

 method, it sorts the records according to the contents of the 

TotalSales

 

column in descending order. 

For an example of using the 

sortItems()

 method, see the RecordSet.sortIems() method in Flash 

Remoting ActionScript Dictionary Help.

Note: 

For RecordSet objects containing 2,000 or fewer records, the 

sortItems()

 method generally 

takes less than one second to finish on a Pentium 3 computer. The length of time to sort RecordSet 
objects increases rapidly as the number of records grows. 

Filtering an existing RecordSet object to create a new RecordSet object

The 

filter()

 method creates a filtered view of a RecordSet object that contains only records that 

conform to a set of rules specified by a selection (filter) function that you define. Unlike the 

sortItems()

 method, the 

filter()

 method creates a new RecordSet object. The original 

RecordSet object and its records remain unchanged. 

The selection function that you define takes a record as the first argument, and can take an 
optional second argument to determine how to select the records. The function must return a 
Boolean 

true

 or 

false

 value. Flash Remoting includes in the filtered RecordSet those records for 

which the selection function returns 

true

. When you call the 

filter()

 method, you pass it your 

selection function and, optionally, the value to use as the selection function’s second argument. 
The 

RecordSet.filter()

 method calls the selection function once for each record in the record 

set.

Содержание FLASH REMOTING MX

Страница 1: ...Using Flash Remoting for Flash MX 2004 ActionScript 2 0...

Страница 2: ...ncluding internationally Third Party Information This guide contains links to third party websites that are not under the control of Macromedia and Macromedia is not responsible for the content on any...

Страница 3: ...Script 2 0 22 Making the minimum changes to your application for ActionScript 2 0 22 Taking full advantage of Flash Remoting for Flash MX 2004 ActionScript 2 0 23 Migrating the DataGrid application to...

Страница 4: ...ector in the CustomerInfoExampleCon application 57 onReveal 60 updateDetails 61 onCustGrid_Change 61 onCustomerData 61 onCategoryData 61 onCustomerDataFault 61 onCategoryDataFault 61 CHAPTER 4 Using F...

Страница 5: ...termining the Flash service name 105 Returning results to ActionScript 106 Passing parameters to ColdFusion components 106 Accessing ActionScript objects 108 Using component metadata with the Flash Re...

Страница 6: ...ng an XML object from Java to Flash 141 Viewing Flash Remoting log entries 141 CHAPTER 8 Using Flash Remoting for Microsoft NET 143 Flash Remoting for Microsoft NET 143 Where Flash Remoting fits into...

Страница 7: ...setDefaultGatewayUrl method 164 Authenticating a user to the application server 165 Creating the service object 166 Handling results for a Connection object 167 Directing all results for a service to...

Страница 8: ...8 Contents...

Страница 9: ...ho have previous experience with Flash MX or Flash MX 2004 and an application server including Macromedia ColdFusion MX Java or Microsoft NET If you are not familiar with Macromedia Flash MX or Macrom...

Страница 10: ...s a new component that allows you to work directly with the new data binding features in Flash MX 2004 Professional Simply drag the RemotingConnector onto the Stage and use the Component inspector to...

Страница 11: ...2 0 on page 22 Developer resources Macromedia is committed to setting the standard for customer support in developer education documentation technical support and professional services The Macromedia...

Страница 12: ...velopment including online discussion groups Knowledge Base technical papers and more www macromedia com go devnet Macromedia Alliance Connection with the growing network of solution providers applica...

Страница 13: ...s channel between Flash applications and remote services Remote services consist of application server technologies such as JavaBeans a Macromedia ColdFusion component or page an ASP NET page or a web...

Страница 14: ...vice in ColdFusion MX Depending on the application server platform Flash Remoting on the server contains a series of filters that perform logging error handling and security authentication as well as...

Страница 15: ...model represents the data of an application and the processing of that data and other logic In a web application this typically consists of the application server program and the database View The vie...

Страница 16: ...nguages ActionScript and the programming language of your application server Therefore building Flash applications with Flash Remoting demands knowledge of at least two different development environme...

Страница 17: ...ort mx remoting Service import Service class import mx rpc FaultEvent import FaultEvent class import mx remoting PendingCall import PendingCall clsas import mx rpc ResultEvent import ResultEvent class...

Страница 18: ...t to your remote services To connect to a service by writing ActionScript code 1 From the Window menu in Flash select Other Panels Common Libraries Remoting 2 From the Library panel drag the RemotingC...

Страница 19: ...services using Flash Remoting 1 In the Flash authoring environment create a new Flash file and save it as serviceTest fla 2 Drag the RemotingClasses library onto the Stage as described in Connecting...

Страница 20: ...e service what methods handle result and fault conditions pc responder new RelayResponder this serviceFunctionName_Result serviceFunctionName_Fault function serviceFunctionName_Result result ResultEve...

Страница 21: ...ck functions named serviceFunctionName_Result or serviceFunctionName_Fault If the call to the service function succeeds the _Result function is called and it processes the result If the service functi...

Страница 22: ...your application for ActionScript 2 0 1 Drag the RemotingClasses library to the Stage as described in the section Connecting to a service on page 18 If you use the NetDebug class in your program you m...

Страница 23: ...4 returned true The Object constructor property must appear only on prototype objects 8 Change calls to the NetServices setDefaultGatewayURL function to NetServices setDefaultGatewayUrl Note the case...

Страница 24: ...the new Remoting API Do not use Flash MX components Make sure your code is consistent in the use of uppercase and lowercase characters ActionScript 2 0 is case sensitive The DataGrid example uses Flas...

Страница 25: ...tablish a reference to a remote service and set up a Responder object to call for result handling and fault handling The old version of the program calls three functions to accomplish these tasks NetS...

Страница 26: ...ibes an alternate way to create a reference to a service in the new API 6 Invoke a service method and establish result and fault handler methods Old API invoke a service method catalogService getCateg...

Страница 27: ...on The example uses this approach using a RelayResponder object to specify the result handling and fault handling methods for the getCategories service function 7 Register a listener for the combo Com...

Страница 28: ...date the details TextArea gridChange new Object gridChange change function evt when the selectedIndex changes in DataGrid a change event will be fired The details should be updated details text evt ta...

Страница 29: ...pter also contains two extended examples CustomerInfoExampleAPI and CustomerInfoExampleCon that are different versions of the same application The CustomerInfoExampleAPI example uses the Flash Remotin...

Страница 30: ...e As with web services and RPCs data from the remote service is converted from the native data type of the remote service such as a Java or C data type to a representation that is used to transfer the...

Страница 31: ...Service import mx services Log import mx rpc RelayResponder import mx remoting PendingCall import mx remoting RecordSet import mx rpc ResultEvent import mx rpc FaultEvent Remove the slashes in the fol...

Страница 32: ...h components such as ListBox or ComboBox that have labels with associated data The DataGlue bindFormatStrings and DataGlue bindFormatFunction methods specify a RecordSet object to use to populate the...

Страница 33: ...about the record set sort the record set define an object to receive notifications when the record set changes and set the way the record set is delivered from the server For more information on usin...

Страница 34: ...nnections and services Connection addHeader call clone close getService setCredentials trace Log onlog RemotingConnector gatewayUrl serviceName methodName multipleSimultaneousAllowe d suppressInvalidC...

Страница 35: ...lumnNames items length addItem addItemAt clear contains filter getColumnNames getEditingData getItemAt getItemID getIterator getLength getLocalLength getNumberAvailable getRemoteLength isEmpty isFully...

Страница 36: ...thout first importing the class you can add the following statement to your code before creating a connection mx remoting debug NetDebug initialize import mx remoting NetServices Deprecated Methods in...

Страница 37: ...create an instance of a RemotingConnector component For more information see Flash Remoting ActionScript classes on page 32 Create a Service object creating a gateway at the same time that you create...

Страница 38: ...nternet Explorer specify the gateway URL as a flashvars parameter in an HTML PARAM tag inside the OBJECT tag body To specify the gateway for Netscape specify the gateway URL as a flashvars attribute t...

Страница 39: ...e ways that you can specify service names for the supported service types Service type Service name Example Web services accessed through ColdFusion or NET servers URL of the WSDL file for the service...

Страница 40: ...you can call the setCredentials method any time after creating the gateway connection object If you created the gateway object using the Service object you can access the connection object through th...

Страница 41: ...oldFusion see Securing access to ColdFusion from Flash Remoting on page 116 Using authentication in JRun 4 Authentication in JRun 4 is only meaningful for EJBs where you can use the setCredentials met...

Страница 42: ...ervice connection setCredentials myUserName myPassword call service function var temp_pc PendingCall petMarketService getCategories en_US getCatergories_Result and getCategories_Fault are result fault...

Страница 43: ...service or for specific server function calls In both cases you specify a responder object The responder object can be any ActionScript object that implments the mx rpc Responder interface The Respon...

Страница 44: ...t specify a RelayResponder object for the responder parameter when you create the Service object For example the responder parameter which is the last parameter of the following Service constructor sp...

Страница 45: ...etMarketService object The return value is a PendingCall object temp_pc The code assigns a RelayResponder object to the responder property of temp_pc The constructor for the RelayResponder object spec...

Страница 46: ...Name ID custCat_cmbo addEventListener change onCustCat_Change refreshCustomerData For more information about the ResultEvent class see the ResultEvent class in Flash Remoting ActionScript Dictionary H...

Страница 47: ...Files Macromedia Flash MX 2004 en First Run RemotingSamples Server See the Readme htm and RemotingCustomerExamplesWalkthrough htm files in the RemotingSamples folder for information on how to set up...

Страница 48: ...TextArea import mx remoting DataGlue import mx screens Form import mx controls TextInput import mx controls Label import mx controls Loader import mx controls Alert class CustomerInfoFormAPI extends...

Страница 49: ...nt category selected function refreshCustomerData Void var pc PendingCall custService getCustomers custCat_cmbo selectedItem data pc responder new RelayResponder this onCustomerData onCustomerDataFaul...

Страница 50: ...rt OK this mx remoting debug NetDebug trace level None message There was a problem fault fault faultstring private var custService Service private var customers_grd DataGrid private var custCat_cmbo C...

Страница 51: ...e The next line shown here registers the onCustGrid_Change function as the event handler to be called if a change occurs in the customers_grd DataGrid component customers_grd addEventListener change o...

Страница 52: ...in the current category onCustomerData The onCustomerData function handles the results of the call to the custService getCustomers function in the refreshCustomer function This function assigns the r...

Страница 53: ...applications of data binding are to gather input parameters from various UI components to send to a service function and to display the results of a service function call You can find the RemotingCon...

Страница 54: ...ema you can bind the items to a variety of UI controls to provide values for the parameters or to display the results of the web service For more information see Working with schemas in the Schema tab...

Страница 55: ...f this component to share a single connection as long as they all use a common gatewayUrl suppressInvalidCalls Boolean Advanced If this parameter has the value true the trigger function does not perfo...

Страница 56: ...ton a Select the Params Object item in the Schema tab b Select the Add Field button and set the field name property to state There is no need to change String as the default data type c Select the Par...

Страница 57: ...folder for information on how to set up and use this sample application You can access the Flash and ActionScript files for this example in the Client subfolder if you want to make changes to it The...

Страница 58: ...l initializes the display function onReveal Void initialize stuff if initialized var col DataGridColumn new DataGridColumn ID customers_grd addColumn col col new DataGridColumn Active col width 80 cus...

Страница 59: ...essage onCustGrid_Change eventObj target _parent updateDetails handles the result of the call to the getCustomers service function function onCustomerData re Object Void _parent customers_grd selected...

Страница 60: ...nitial call to the onReveal method which performs initialization tasks for this class The addEventListener function registers the onReveal method as the event handler for a reveal event onReveal The o...

Страница 61: ...to update the Customer Details section onCustomerData The onCustomerData function handles the results of a request to retrieve Customer data and populate the DataGrid component It sets the selection...

Страница 62: ...62 Chapter 3 Using the RemotingConnector component Flash Professional only...

Страница 63: ...t on page 64 Converting from ActionScript to application server data types on page 65 Converting from application server data types to ActionScript on page 67 ColdFusion to ActionScript data conversio...

Страница 64: ...or the ActionScript object model Using AMF Flash Remoting encodes data types back and forth between the Flash application and the remote service over HTTP Modeled on the Simple Object Access Protocol...

Страница 65: ...C data type Converted Visual Basic data type Converted SOAP data type Converted ColdFusion MX data type null null null Nothing null null not defined ColdFusion uses a null value internally but report...

Страница 66: ...shgateway io ASObject FlashGateway IO ASObject FlashGateway IO ASObject Complex type For a CFML page the Flash scope with the object key names being the scope variables For more information see Using...

Страница 67: ...associative arrays In these cases it converts the numeric indexes to keys with numbers as the strings for example 0 1 2 Converting from application server data types to ActionScript Flash Remoting aut...

Страница 68: ...Pageable ResultSet Paged RecordSet FlashGateway IO ASObject System Exception FlashGateway IO ASObject System Exception Complex type A Java object as listed in the next column flashgateway i o ASObject...

Страница 69: ...dFusion data and ActionScript data Boolean data in ColdFusion If a ColdFusion page or CFC returns Boolean values it represents these values as strings Flash does not have rules for converting strings...

Страница 70: ...etNumber access remote cfset foo Val 2 cfreturn foo cffunction If you call either of these getNumber functions from Flash the ActionScript getNumber_Result function in the previous example displays th...

Страница 71: ...lass myClass extends Object myClass super value1 Test1 Register the class definition Object registerClass testClass myClass public var value1 String Send instance of registered class to a Flash Remoti...

Страница 72: ...CFML code is the equivalent to the Java code cffunction access remote name getFlashObject cfobject type JAVA class flashgateway io ASObject name myOb action CREATE cfset myobj setType MyFlashObject cf...

Страница 73: ...by explicitly calling the getMessage method but directly from the properties returned from the Flash gateway on the server About working with RecordSet objects Using Flash Remoting you can return Reco...

Страница 74: ...a structures for use in Flash UI Components For more information on using RecordSet methods see RecordSet methods on page 75 You access record set rows using the row index much like in an array Record...

Страница 75: ...columns of a RecordSet object RecordSet getIemAt Returns a record if the index is valid and the record is available RecordSet getItemID Returns the record ID of a record RecordSet getIterator Returns...

Страница 76: ...the getItemAt method For example the following line gets the third record in a record set myRecord myRecordSet getItemAt 2 To get the value of a specific field in a record use the column name as a pro...

Страница 77: ...tion RecordSet contains Indicates whether the record set contains the specified record RecordSet getColumnNames Returns an array of the names of the columns of a RecordSet object RecordSet getItemID R...

Страница 78: ...ject you use the replaceItemAt method To replace a specific field in a record in a RecordSet object use the editField method For example the following code replaces the contents of the third record in...

Страница 79: ...perty are addItems allRows fetchRows sort removeItem removeItems and updateItems Depending on the value of eventName the following properties might provide additional information firstItem lastItem re...

Страница 80: ...es In this example cust_ListBox represents a ListBox UI component in the Flash application In the rs sortItemsBy method it sorts the records according to the contents of the TotalSales column in desce...

Страница 81: ...ordSet object The Contact_grid component s dataProvider property receives a filtered copy of myRecordSet object generated by the myRecordset filter method as the data for the contact_grid ListBox Note...

Страница 82: ...g RecordSet service page When you use the getItemAt method to access a record the RecordSet object fetches data one or more pages at a time You specify the number of records per page when you set the...

Страница 83: ...abel and data information These components use Flash DataProvider objects to supply the following information Label values that appear to the user Corresponding data values that are available by using...

Страница 84: ...consumer The function must take a record as an argument and returns an object that consists of two entries a label field and a data field The function has full flexibility in using the record contents...

Страница 85: ...ication uses ActionScript XML objects and methods to generate and manipulate XML as needed Your decision as to which method to use should depend on whether it is preferable in your environment to do m...

Страница 86: ...t2_txt text firstElement appendChild secondElement xmlDocument appendChild firstElement Call the service function and pass it the XML document trace xmlDocument Result Handler to handle the results re...

Страница 87: ...applications you use the NetConnection Debugger in the Flash authoring environment The NetConnection Debugger shows calls and responses from the following software components Flash Player Flash Remot...

Страница 88: ...ebug class at the beginning of the ActionScript code for your Flash application import mx remoting debug NetDebug 4 Call the NetDebug initialize method at the beginning of your code prior to establish...

Страница 89: ...emoting application 1 Press Control L to open the Library panel 2 Select the RemotingDebugClasses library and delete it 3 Remove debugging statements from your code in the Actions panel if you like Th...

Страница 90: ...on Server uses RTMP Flash Remoting does not use RTMP The default value is true app_server Information about events on the application server This category includes activities reported by the server it...

Страница 91: ...n Server events This option is not used for debugging Flash Remoting applications The default value is true Note The user interface uses the term flashcomm_server In ActionScript you must use realtime...

Страница 92: ...s method HeaderName The type of header being sent such as Credentials MustUnderstand A Boolean value that specifies whether the server must understand and process this header before the server can han...

Страница 93: ...emoting client This event occurs for each HTTP request AmfHeaders The contents of the AMF headers sent in the response if any The gateway returns a header if the client does not support cookies and UR...

Страница 94: ...tion event For more information on ColdFusion debugging information see Developing ColdFusion MX Applications with CFML Flash Communication Server events If you enable Flash Communication Server flash...

Страница 95: ...he NetDebug initialize method see the NetDebug class in the Flash Remoting ActionScript Dictionary in Help For information about the CustomerInfoExampleAPI sample application see Using the Flash Remot...

Страница 96: ...ript to display debugger output For information on using the Filters panel see Flash Help In ActionScript you configure NetConnection Debugger output for each connection individually As a result if yo...

Страница 97: ...ActionScript on page 111 Calling web services from Flash Remoting on page 115 Securing access to ColdFusion from Flash Remoting on page 116 Handling errors with ColdFusion on page 117 Using Flash Rem...

Страница 98: ...elloWorld_Fault To specify subdirectories of the web root directory or a virtual directory use package dot notation If helloWorld cfm is in the directory web_root helloExamples ColdFusion you can use...

Страница 99: ...access these parameters using Flash Params as follows cfset p1 Flash Params 1 cfset p2 Flash Params 2 cfset p3 Flash Params 3 The following ActionScript code calls a ColdFusion page to execute a quer...

Страница 100: ...y array1 0 zero array1 1 one myService myMethod array1 You access the elements in the array in your ColdFusion page using ColdFusion array notation as follows cfset arrayElement1 Flash Params 1 1 cfse...

Страница 101: ...rray new Array struct1 zero banana struct1 one orange myService myMethod x array1 y struct1 Collection ActionScript example Notes Strict array var myArray Array new Array myArray 0 zero myArray 1 one...

Страница 102: ...record set returned from a ColdFusion query For more information about converting data types between ColdFusion and Flash see Chapter 4 Using Flash Remoting Data in ActionScript on page 63 The followi...

Страница 103: ...urrent date function helloWorld_Fault fe FaultEvent Void Within the result handler of the helloWorld method you access the structure returned by ColdFusion Returning record sets to Flash A Flash appli...

Страница 104: ...box Returning record sets in increments ColdFusion lets you return record set results to Flash in increments For example if a query returns 20 records you can set the Flash Pagesize variable to retur...

Страница 105: ...returned to a Flash list box the list box requests more rows as the user scrolls through the list box Using Flash Remoting with ColdFusion components ColdFusion components require little modification...

Страница 106: ...sets in increments from a component The component executes once and returns all the results to the Flash Remoting gateway The Flash application then requests subsequent records from the gateway as req...

Страница 107: ...ers Collection ActionScript example Notes Strict array var myArray Array new Array myArray 0 zero myArray 1 one myService myMethod myArray The Flash Remoting service converts the array argument to a C...

Страница 108: ...e Flash application 3 Save the file The following ActionScript example calls this function import mx remoting Service import mx remoting PendingCall var CFCService Service new Service http localhost f...

Страница 109: ...se it is split into named arguments However an ActionScript array does not Passing objects from ActionScript lets you use the Arguments scope within a component function The Arguments scope works the...

Страница 110: ...ent In this example the description attribute of the cffunction tag supplies a short text description of the component method 2 Save the file 3 Open the Flash authoring environment and open the Servic...

Страница 111: ...r side ActionScript function definition returns a RecordSet object function basicQuery var mydata CF query datasource customers sql SELECT FROM myTable return mydata Using CF http The CF http ActionSc...

Страница 112: ...Boolean value that indicates whether the specified URL location contains text data Charset The character set used by the document specified in the URL HTTP servers normally provide this information or...

Страница 113: ...The positional argument approach supports a subset of CF http arguments but it lets you code in a more succinct and efficient style The schema for the positional argument style is as follows CF http u...

Страница 114: ...ments it allows a more compact coding style that is appropriate for simple expressions of the CF query function The CF query function accepts the following arguments using the named argument style CF...

Страница 115: ...e complexity associated with programming web services is removed Invoking web service methods using Flash Remoting The following example shows an example of a Service constructor for accessing a web s...

Страница 116: ...just as you control access to any ColdFusion page In this way you can grant Flash applications access to only selected ColdFusion code ColdFusion security is based on a username and password Flash Re...

Страница 117: ...les admin manager cfargument name filepath required yes cffile action DELETE file arguments filepath cffunction cfcomponent In the example the cffunction tag includes the roles attribute to specify th...

Страница 118: ...fset tag fails because it causes a divide by zero error The message attribute of the cfthrow tag describes the error ColdFusion returns this attribute to the Flash application For more information on...

Страница 119: ...ensions JMX MBeans available in Macromedia JRun 4 only Macromedia JRun 4 also lets you call functions on server side ActionScript which can in turn call methods on server side Java objects This chapte...

Страница 120: ...dapters for JavaBeans Java classes EJBs JMX MBeans and server side ActionScript Where Flash Remoting fits into the Java application architecture A design pattern is a solution to a recurring problem M...

Страница 121: ...un com blueprints patterns j2ee_patterns session_facade index html Calling Java classes or JavaBeans from ActionScript This section describes how to call a JavaBean or Java class from Flash using Flas...

Страница 122: ...ge 37 Application server Classpath information Sun ONE Web Server In the Web Server Administration Server console add classes to the Classpath field in the Configure JVM Attributes page of the Java pa...

Страница 123: ...ons The first parameter this specifies that the results of the service function call are returned to those methods in this object If the result handling methods were contained in a different object yo...

Страница 124: ...blic class FlashJavaBean implements Serializable private String message private int count public FlashJavaBean message Hello World From JavaBean count 0 public boolean testBoolean boolean b return b p...

Страница 125: ...rt mx rpc import mx controls class init_Categories extends mx screens Form function init_Categories super mx remoting debug NetDebug initialize initialize the debugger establish the gateway and obtain...

Страница 126: ...Message_Result setMessage_Fault function getMessage var gm_pc PendingCall flashtestService getMessage gm_pc responder new RelayResponder this getMessage_Result getMessage_Fault function testBoolean if...

Страница 127: ...sultEvent Void boolOutput text result re result function testBoolean_Fault fe FaultEvent Void boolOutput text status fe fault faultstring function testDate_Result re ResultEvent Void flashDate re resu...

Страница 128: ...a period Note There are several other ways to specify the gateway URL For more information see Chapter 2 Configuring Flash Remoting on page 36 Invoking EJB methods in ActionScript Unlike JavaBeans and...

Страница 129: ...mber principalInput text number monthsInput text number rateInput text cal_pc responder new RelayResponder this calculate_Result calculate_Fault To handle the function results you use a result handler...

Страница 130: ...sivate throws RemoteException public void setSessionContext SessionContext context throws RemoteException sessionContext context public double calculate double principal int months float rate if rate...

Страница 131: ...is create_Result create_Fault Business Methods Calculate payment based on data user enters in principalInput monthsInput and rateInput text fields Function arguments must be numbers Java method expect...

Страница 132: ...FlashServlet class and implement the following abstract method public Object service ServletRequest req ServletResponse resp List arguments Getting a reference to a web application in ActionScript Bef...

Страница 133: ...tion servers you can define a JSP as a servlet by specifying a JSP filename in a JSP file element rather than a servlet class in a servlet class element Request arguments sent from Flash as parameters...

Страница 134: ...t Service constructor Service functions are methods defined in the MBean s manageable interface The following sections describe how to get a reference to a JMX MBean object and call its methods To gra...

Страница 135: ...example you could use the following ActionScript code to invoke the getEARs method of the jrunDeployerMBean MBean to get a list of JMX object names for deployed enterprise applications function getEAR...

Страница 136: ...and name of the ASR file relative to a web application context root In this example flash is the context root of the web application script is a directory under the context root and FlashSample is th...

Страница 137: ...and private properties are available as ActionScript properties For example the following method in a Java class called Loan calculates loan payments and returns an instance of a JavaBean called LoanI...

Страница 138: ...blic LoanInfo double principal int months float rate double monthlyPayment String message this principal principal this months months this rate rate this monthlyPayment monthlyPayment this message mes...

Страница 139: ...ly the EJB adapter supports authorization After a user is authenticated the user s role is associated with any EJBs the user may access and the security permissions established in EJB deployment descr...

Страница 140: ...XML objects For more information about ActionScript XML objects see the Flash documentation set For more information about the Java org w3c dom Document interface see the Java 2 Platform Standard Edi...

Страница 141: ...xt contained in the first child element of the XML document root is displayed in a Flash dynamic text field called output The text matches whatever text the user initially entered in the Flash text fi...

Страница 142: ...142 Chapter 7 Using Flash Remoting for Java...

Страница 143: ...SP NET pages web services and assembly methods A Flash developer writes ActionScript that uses a library of functions to connect to a remote NET server get a reference to the remote service and invoke...

Страница 144: ...nctionality To assist you in planning your Flash applications a design pattern represents a solution to a frequently experienced problem and provides a way to standardize coding practices across a com...

Страница 145: ...ontext in the application This pattern reduces network traffic and makes it easier to support different types of clients change the enterprise data model or change the server implementation For more i...

Страница 146: ...d application for you named flashremoting You can find the flashremoting folder in your IIS webroot such as C Inetpub wwwroot flashremoting When creating the directory structure for your own ASP NET a...

Страница 147: ...xample if the page was called GetResources aspx and the web root folder for your installation was C Inetpub wwwroot you would find the GetResources page in the following location C Inetpub wwwroot fla...

Страница 148: ...erence to the ASPX page you can use ActionScript functions to invoke it For example the following ActionScript code invokes the ASPX page GetResources aspx assuming that aspxService represents your re...

Страница 149: ...addition to passing simple strings you can write code in a NET supported language that accesses parameters passed from Flash and returns processed results to Flash The Flash Remoting custom server co...

Страница 150: ...ctive references a code behind file myASPPage aspx vb Using the Flash Remoting namespace in code behind files In ASP NET applications you can separate business logic from user interface code using cod...

Страница 151: ...ash Remoting Flash Remoting supports ASP NET cookie based state management which maintains a user session using HTTP header information Flash Remoting maintains the session ID automatically by passing...

Страница 152: ...e Using ASP NET exception handling To return custom ASP NET exceptions to Flash you use the throw statement You can throw exceptions in the context of a try catch statement an if else statement and so...

Страница 153: ...pen create the SQL statement String selectCountry SELECT DISTINCT Country FROM Customers ORDER BY Country ASC query the database SqlDataAdapter countryAdapter new SqlDataAdapter selectCountry sqlConne...

Страница 154: ...Page_Load method definition in a code behind file that performs the same operation as the previous code example Private Sub Page_Load ByVal sender As System Object ByVal e As System EventArgs Handles...

Страница 155: ...moting custom server control using the Flash DataBind method and returned to Flash Displaying a RecordSet object in Flash with ActionScript To display a RecordSet object in a Flash UI component you ca...

Страница 156: ...local web service proxy to interact with web services After you create the proxy the ActionScript in your Flash application can then invoke web service methods through the proxy which handles sending...

Страница 157: ...ing makes web services easy To call this method in ActionScript you use the method name in the context of the flashService Service object as the following ActionScript example shows flashService getMe...

Страница 158: ...vice As with local web services Flash interacts with remote web services by using the NET framework s WSDL Tool wsdl exe to create web service proxies dynamically in the form of assemblies with the dl...

Страница 159: ...use an assembly or class method name On the server you must place your DLL and class files in the local assembly cache Calling assemblies from Flash In the class file you specify the using directive...

Страница 160: ...can describe the data being passed with the ASType property of the ASObject class The following sections describe both how to create and populate the custom ActionScript object from the server and how...

Страница 161: ...ar dataService Service new Service http localhost flashremoting gateway aspx null FlashRemoting ObjectTests ObjectClass null null Ask the server for some raw data var pc PendingCall dataService return...

Страница 162: ...1 Registration The following table lists the Flash Remoting registry keys Registry key Description Log File Size Maximum number of bytes that the flash log file can reach before Flash Remoting stops...

Страница 163: ...ng the Service object For more information see the Service class in Flash Remoting ActionScript Dictionary Help To create a Flash Remoting Connection object you first specify the gateway URL and then...

Страница 164: ...to configure a connection to a specific gateway For example import mx remoting Connection import mx remoting NetServices farther in the application var gatewayConnection Connection NetServices create...

Страница 165: ...user authentication a user name and password before you can use a service Flash Remoting provides the setCredentials method of the Connection class to allow you to specify authentication credentials...

Страница 166: ...ion on considerations for specifying a Flash responder see Handling results for a Connection object on page 167 The following example shows the getService method for the remoteservices service which c...

Страница 167: ...der object to receive the results howdyService gatewayConnection getService remoteservices new HelloResponder responder You can direct results to a specific method in the result handler by providing a...

Страница 168: ...ce howsItGoin uses default result handler Directing results for a service to specific responder objects You can also specify a responder object to handle the results of a specific service function To...

Страница 169: ...ject can be used for multiple service functions function general_Result this onResult function result trace result is result call service functions howdyService helloWorld new helloWorld_Result howdyS...

Страница 170: ...service function call Flash Remoting returns the status to that object s onStatus method When you use this technique the responder object must also have an onResult method to handle the result 3 If th...

Страница 171: ...on fails due to a time out it might be appropriate for the Flash application to try the request a second time If the request fails a second time the SWF file could then display a message to the user a...

Страница 172: ...ect can be used for multiple service functions function general_Result this onResult function result trace result is result this onStatus function error trace result is error description call invalid...

Страница 173: ...ervice 16 AddHeader client event message 92 ADO NET objects using with Flash Remoting MX 153 AMF debugging messages 90 understanding 64 amf app_server event type 90 amfheaders app_server event type 90...

Страница 174: ...methods 34 RecordSet 33 RelayResponder 33 RemotingConnector 33 Service 33 client event type 90 NetConnection Debugger event messages 92 Close client event message 92 code behind files using the Flash...

Страница 175: ...18 using RemotingConnector 18 controller model view controller pattern 15 createGatewayConnection NetServices object method specifying gateway in 164 credentials resetting 41 165 custom server contro...

Страница 176: ...ation structure 30 architecture 14 building Flash applications with 16 building the Flash application 19 configuring 36 custom server control using in ASPX pages 149 development environment 16 for NET...

Страница 177: ...classes 35 incremental record sets 104 Information app_server event message 93 Internet Explorer gateway for 38 J Java converting data to ActionScript 67 converting data types from ActionScript 65 Fla...

Страница 178: ...tion 33 importing 36 notifications using with RecordSet objects 78 numeric data in ColdFusion 70 O objects using in Flash Remoting applications 70 P pageable record sets 82 104 PendingCall class descr...

Страница 179: ...rs 54 using 53 57 RemotingConnector componen usingt 53 RemotingDebugClasses library accessing 30 RemotingSamples folder 47 57 Result client event message 92 result handler example 31 relationship to s...

Страница 180: ...vent type 90 Flash Communication Server event type 91 NetConnection object method 96 NetDebug object method 95 Trace client event message 92 typed objects using ActionScript 71 U URL determining the g...

Отзывы: