19.10.1. 问题如何将一个XML 或XMLList 对象转换成一个或多个强类型的对象。19.10.2. 解决办法通过使用限定命名空间及SimpleXMLDecoder 类把XML 译码成对象, 然后使用chemaTypeRegistry.registerClass 方法对类进行注册。19.10.3. 讨论SchemaTypeRegistry.registerClass 可以让你注册一个类型为由Web 服务所返回的类。这个类一定要在WSDL 文件被..
19.9.1. 问题当所显示的XML 包含多个内嵌子节点时, 应如何确保该层次架构会被正确地展示?19.9.2. 解决办法可以使用mx.controls.Tree 或AdvancedDataGrid 控件去显示数据。创建一个HierarchicalData对象, 并将该XML 传递给它, 以确保Tree 或AdvancedDataGrid 可以在XML 架构中正确地定位。19.9.3. 讨论要去显示下列基于Tree 或AdvancedDataGrid 控..
19.8.1. 问题如何将一个ActionScript 对象转换成XML.。19.8.2. 解决办法可以使用SimpleXMLEncoder.encodeValue 方法把一个对象及其属性写入到一个XMLDocument 对象里。19.8.3. 讨论当创建XML 以传送Web 服务或服务端方法的URL 为XML 时, SimpleXMLEncoder 对象是非常有用的。在这个对象中定义了一个名叫encodeValue 的方法, 其签名格式如下:+展开..
19.7.1. 问题如何从一个自定义的命名空间及扩展的Web 服务里, 分析其返回的XML?19.7.2. 解决办法申明一个命名空间变量, 将它设置为返回的XML 命名空间的位置, 然后在进行任XML 处理之前, 先调用该命名空间的”use”方法。19.7.3. 讨论对包含自定义命名空间的XML 进行分析是比较困难的, 它要求该命名空间一定要在任何XML 返回前被申明, 同时要在该..
19.6.1. 问题如何从一个数组中生成一个XML 对象?19.6.2. 解决方法使用数组索引去存取数组内的数据, 并由对应的数据对象创建XML 对象。然后, 调用XML的appendChild 方法把新建的节点添加到主XML 里。19.6.3. 讨论通过XML 类的appendChild 方法, 可以添加节点到XML 文档里。可是, 要将属性添加到XML 对象, 你需要使用绑定标记运算符” ({})”去填充..
19.5.1. 问题如何将一个控件跟一个E4X 查询返回值进行绑定并存放到一个XML 对象里?19.5.2. 解决方法使用绑定标记“({})”去包装E4X 表达式,并设置控件的属性。19.5.3. 讨论举例说以下的XML 文件:+展开-ActionScript[Bindable]privatevarxmlItems:XML=CATALOG>PLANTid="2">COMMON>Bloodroot/COMMON>BOTANICAL>Sanguinariacanadensis/BOTANICAL>Z..
19.4.1. 问题如何追加一个XMLList 对象到XML 对象的节点里?19.4.2. 解决方法使用E4X 表达式, 找出需要追加的XMLList 对象所在的节点, 然后在该节点上调用appendChild 方法。19.4.3. 讨论通过使用XML 类的appendChild 方法, 你可以直接添加一个XMLList 到一个XML 对象或另一个XMLList 对象里。例如说下列的XML 对象:+展开-ActionScriptvarxmlNode..
19.3.1. 问题如何通过使用正则表达式作为查询的一部分, 来创建复杂的E4X 查询?19.3.2. 解决办法以文本形式把正则表达式添加到E4X 语句中, 并调用正则表达式的test 方法。19.3.3 讨论通过结合正则表达式及E4X, 可以对XML 节点进行准确的筛选。正则表达式的文本语法允许你在不调用构造函数的情况下, 添加一个正则表达式。同时, 也可以对XML 节点的..
19.2.1 问题对于一个基于多个字段(attribute)的属性值的XML 文件, 应如何选取其中的节点?19.2.2. 解决办法使用E4X 语法的”@”运算符来存取属性, “([])运算符(数组索引)”是用来指示多个子节点之间的关系, 而”.”运算符则用来表示已命名子节点之间的关系。19.2.3. 讨论通过E4X, 你可以在子节点的名称后附加一个”.”运算符, 这样你就可以存取X..
19.1.1. 问题如何加载及处理一个外部XML 文件?19.1.2. 解决办法使用HTTPService 组件来加载XML 文件, 并把resultFormat 设置为”xml”。或者, 使用flash.net.URLLoader 类来创建一个URLLoader 实例, 并调用load 方法来加载XML 文件。19.1.3. 讨论在默认的情况下, HTTPService 组件会把任何加载的XML 转换成一个ActionScript 对象。要避免这种情况..
Flex 3 和ActionScript 3.0 支持ECMAScript 或E4X 标准的XML 语法, 使你可以通过点(.)标记来存取一个XML 分层架构的各个节点。通过E4X 所提供的简易标记, 你可以根据其名称或索引, 轻易地存取特定的节点或节点组, 而无需使用一些复杂的自定义回调函数。同时,它也定义了各种方法及属性, 用以存取XML 对象的各个部分, 包括注释, 命名空间和处理指令..
18.14.1. 问题我想创建一个服务器的连接,不需要请求就可接收XML 数据。18.14.2. 解决办法使用XMLSocket 类打开服务器连接,它允许服务器发送信息给客户端,当数据到达客户端时已经有被接收和处理的信息了。18.14.3. 讨论XMLSocket 类实现了客户端socket,让Flash Player 和AIR 应用程序可以指定IP 地址和域名即可连接到服务器。要使用XMLSocket..
18.13.1. 问题我想接收二进制数据,处理完后以同样的二进制格式发送数据。18.13.2. 解决办法使用flash.net.Socket 打开socket 连接。18.13.3. 讨论flash.net.Socket 是Flex 框架或ActionScript 3中最低级别的通信工具,使得你能建立socket连接并读取和写入原始的二进制数据。Socket 可接收和发送POP3,SMTP,IMAP 信息,甚至是自定义二进制格式。..
18.12.1. 问题我需要使用AMF 数据和安全Sockets 层(SSL)通过Flash Remoting 进行通信。18.12.2. 解决办法在编译程序所使用的services-config.xml 文件中定义你的channel 为SecureAMFChannel。18.12.3. 讨论SecureAMFChannel 可让你使用基于SSL 的AMFChannel 通信,以确保通过AMFChannel 发送的数据都是安全的。要创建一新的channel,使用安全版本..
18.11.1. 问题我需要解析返回的SOAP 响应。18.11.2. 解决办法使用Flash Player 将WebService 返回的SOAP 编码XML 的SOAP 类型转换为ActionScript 类型。18.11.3. 讨论返回的SOAP 响应可用E3X 表达式进行解析。常用的类型如表Table 18-1, 以及对应的SOAP和ActionScript 表示。Table 18-1. SOAP 类型和对应的ActionScript类型一个WSDL 文件定义如下..
18.10.1. 问题我想发送SOAP 头到WebService 组件的请求中。18.10.2. 解决办法创建一个SOAPHeader 对象,参数为所使用的名称空间和添加到header 的内容。然后调用WebService.addHeader 方法发送带有请求的header。18.10.3. 讨论Web 服务经常用SOAP 头接收登录,用户信息或其他数据。创建SOAPHeader 需要一个包含数据的限定名称空间QName 和添加到..
18.9.1. 问题我的应用程序需要与服务端的web 服务进行通信,Web 服务提供WSDL 信息表述可使用的方法和调用这些方法的具体信息。18.9.2. 解决办法创建mx.rpc.WebService 对象,设置wsdl 属性为WebService 的WSDL 地址。18.9.3. 讨论WebService 组件使用WSDL 文件与web 服务建立通信。Flash Player 能识别下列WSDL 文件的属性:binding指定客户端协..
18.8.1. 问题我需要在自己的应用程序中注册服务端数据类型,以便从RemoteObject 返回的对象能正确转换为远程类的实例。18.8.2. 解决办法使用flash.net.RegisterClass 方法或在类申明中标记类为RemoteClass。18.8.3. 讨论在反序列化AMF 数据中的对象为类对象时,该类必须事先在Flash Player 中注册,这样反序列化才能得到正确的数据类型,如下面C..
18.7.1. 问题我想在服务端数据改变能通知客户端Flex 应用程序或广播消息给所有的监听器。18.7.2. 解决办法使用mx.messaging.Producer和mx.messaging.Consumer 标签配置用于通信的目标通道和消息事件设置事件处理器。配置这些需要使用Adobe LiveCycle 或BlazeDS 服务器。18.7.3. 讨论发布/订阅模式使用两个组件:mx.messaging.Producer 和mx.mess..
18.6.1. 问题我想确定返回的数据是多个同时发生的服务中哪个调用返回的结果。18.6.2. 解决办法在每个服务中添加ASyncToken 变量标记。18.6.3. 讨论因为mx.rpc.ASyncToken 是一个动态类,可以在运行期添加属性和方法。Flex 文档里描述的是“一个为异步RPC 操作设置额外的或标记级别的数据的地方”。例如,假定有个应用程序使用DateChooser 控件,..
18.5.1. 问题当通过RemoteObject 或DataService 发送强类型数据时我想进行自定义决定哪些属性将被发送过去。18.5.2. 解决办法使用ActionScript 3 API flash.utils.IExternalizable,它兼容java.io.IExternalizable API.18.5.3. 讨论通常使用可序列化类是在序列化中包含只读的属性。虽然在服务端可有多种方式完成此目的,但是在客户端就没有什么方..
此节来自:http://hi.baidu.com/gdutpxz/blog/item/f2108e4556762323cefca3dd.html18.4.1. 问题我想使用Flex remoting 与安装了AMFPHP 的服务器进行通信。18.4.2. 解决办法安装AMFPHP 并进行连接数据源的配置,使用RemoteObject 访问AMFPHP 服务,调用上面的方法。18.4.3. 讨论为了演示如何使用AMFPHP 和Oracle Database Express Edition (XE),..
18.3.1. 问题我想要为一个Flex 应用配置一个RemoteObject 用来连接到ColdFusion,AMFPHP,或者Java对象来提供Flex 应用与服务的通讯。18.3.2. 解决办法在你的应用中创建一个RemoteObject 实例并且为你的服务设定id,让服务不仅仅可以通过URL 访问。18.3.3. 讨论RemoteObject 允许你定义介于你的应用和服务器上实际的类对象之间的通讯。这是和Web..
18.2.1. 问题我想要整合一个Flex 应用程序和一台使用RESTful 或者表述性状态转移风格通讯的服务器,例如Rails 或者其他服务器。18.2.2. 解决办法创建一个HTTPService 对象来使用合适的路径通过POST 和GET 方法和你的服务器通讯,呼叫远端服务器上的方法。18.2.3. 讨论所谓RESTful 的服务一般被用来描述一个服务使用所有4 个可能的HTTP 头:PUT,..
18.1.1. 问题我想要创建和配置一个HTTPService 组件来允许你的应用程序来与基于HTTP 的服务通讯。18.1.2. 解决办法为你的应用程序添加一个HTTPService 组件,设定它的url 属性为应用程序用来接受数据的URL。如果服务的反馈是XML,就需要定制的处理, 指定一个方法到组件的xmlDecode属性来处理XML 对象。18.1.3. 讨论HTTPService 对象提供了所有H..
使用Flex 最重要的部分之一就是和服务器以及数据库的通讯。本章的内容主要关注与配置一个Flex 应用程序来与服务器通讯以及处理从服务器发到应用程序的数据,这些数据从三种主要的服务器应用之间的通讯方式传送。Flex 提供了三个类来与服务器通讯: HTTPService,RemoteObject 以及WebService。HTTPService 类提供了使用超文本传输协议(HTTP)与..
17.8.1. 问题我想要再用户离开应用程序的时候,记住用户输入的TextInput 的字段。17.8.2. 解决办法创建一个TextInput 组建的子类,当用户输入的时候来使用本地共享对象存贮用户输入的文本值。17.8.3. 讨论为了方便,现代浏览器都提供了记住用户上次在公共表单区域输入值和登陆提示,这些值在用户再次访问的时候不用再次输入。默认情况,Flex 应用..
17.7.1. 问题我想要在同一台机器上不同的Flex 应用程序中共享使用同一个贡献对象。17.7.2. 解决办法在调用SharedObject.getLocal() 方法的时候,指定一个外部路径。17.7.3. 讨论SharedObject.getLocal()方法的第二个参数指定了本地硬盘存贮这个共享对象的位置。存贮路径在17.1 节中有讨论过,这些路径是依赖于应用程序所运行的操作系统平台。get..
17.6.1. 问题我想要能去保存自定数据类型的对象到一个共享对象中。17.6.2. 解决办法使用registerClassAlias()方法来注册类型化的对象到Flash 运行时,然后存贮这个对象实例到一个共享对象。17.6.3. 讨论所有的共享对象都包含了一个叫作objectEncoding 的属性,用来标示在这个共享对象中使用的AMF 版本。默认情况,objectEncoding 被设为AMF3—标..
17.5.1. 问题我想要从磁盘上清除一个共享对象或者从一个共享对象中删除数据的一个指定位置。17.5.2. 解决办法使用clear()方法来清除一个共享对象。使用delete 关键字来移出一个共享对象的data 属性中的制定数据。17.5.3. 讨论你需要简单的呼叫一个SharedObject 的clear()方法来从你的文件系统中清除这个共享对象。+展开-ActionScript//createanl..