- 浏览: 287808 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
xisuchi:
咋没人收藏阿
前端开发大众手册(包括工具、网址、经验等) -
past2010yeah:
太好了,解决了我纠结很久的问题!!!非常感谢!
解决Flex跨域"访问URL时遇到安全性错误" -
shlei:
xiao_kai 写道这样会不会牺牲性能啊~~会,但是这是暂时 ...
解决flex4 spark 找不到外观错误 -
xiao_kai:
这样会不会牺牲性能啊~~
解决flex4 spark 找不到外观错误 -
jcl860:
兄台:左边面板是图片,还是用mxml画出来的图形?
仿IBM-BPM Editor实现的WorkFlowEditor
以下是一个AMF调用类:
调用方法:
回调函数:
package common { import flash.events.Event; import flash.events.EventDispatcher; import flash.utils.ByteArray; import flash.utils.Dictionary; import mx.controls.Alert; import mx.core.FlexGlobals; import mx.messaging.ChannelSet; import mx.messaging.channels.AMFChannel; import mx.rpc.AsyncToken; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.remoting.RemoteObject; public class SimpleAmf { public function SimpleAmf(v:SingletonTemp,sourceData:String,url:String=null ){ _dispatcher = new EventDispatcher(); _service = new mx.rpc.remoting.RemoteObject(); _nonPollingChannelSet = new mx.messaging.ChannelSet(); _pendingOperations = new flash.utils.Dictionary(); _cachedOperations = new Array(); _serviceUrl = url; _sourceData = sourceData; initChannels(); _service.addEventListener(mx.rpc.events.FaultEvent.FAULT, serviceFaultHandler); } /** * destination初始化 */ protected function initChannels():void{ _service.requestTimeout = _requestTimeout; _service.source = _sourceData;//"ssoc.AssetService"; _service.destination = "amfphp"; _service.source= _sourceData; _service.endpoint = _serviceUrl; } /** * SimpleAmf单例模式 * */ public static function instance(source:String,url:String=null):SimpleAmf{ if ( url == null ){ url = FlexGlobals.topLevelApplication._host;//要传入的gateway从全局变量中取,如:http://192.168.1.146/ssoc/phpserver/gateway.php } var key:String = url + "/" + source; //md5.hash( _binKey ).toString(); if( null == _instanceHash[key] ){ var server:SimpleAmf = new SimpleAmf(new SingletonTemp(),source,url); _instanceHash[key] = server;//把调用的后台接口类存入数组,这样第二次就可直接调用了 } return _instanceHash[key]; } /** * * @param Operation * @param eventType * @param arguments * @param bRecallOnError * */ protected function startRemoteOperation(Operation:String, eventType:String, arguments:Object,callback:Function=null, bRecallOnError:Boolean=true):void{ var requestData:AmfRequestData = new AmfRequestData(eventType); requestData.operation = _service.getOperation(Operation); requestData.callback = callback; requestData.recallOnError = bRecallOnError; requestData.operation.arguments = arguments; requestData.token = requestData.operation.send(); _pendingOperations[requestData.token] = requestData; return; } /** * * @param token * @param arg2 * @return * */ protected function finishRemoteOperation(token:mx.rpc.AsyncToken, arg2:Boolean=true):AmfRequestData{ var requestData:*; requestData = this._pendingOperations[token] as AmfRequestData; if (requestData == null) { return null; } delete _pendingOperations[token]; return requestData; } /** * callback(success:Boolean,response:Object,arguments:Object) * @success 是否调用城功 * @response 返回的数据 * @arguments 传入的调用参数 * */ private function onDefaultGetHandler(resultEvent:mx.rpc.events.ResultEvent):void{ var requestData:AmfRequestData = finishRemoteOperation(resultEvent.token); if ( requestData.callback != null ){ requestData.callback(true,resultEvent.result,requestData.operation.arguments); } } /** * 异常处理 */ private function serviceFaultHandler(event:FaultEvent):void{ var requestData:AmfRequestData = finishRemoteOperation(event.token); if ( requestData.callback != null ){ requestData.callback(false,event.fault.faultString,requestData.operation.arguments); } } /** * 请求调用函数 */ public function request( operation:String, arguments:Object,callback:Function=null, eventType:String=null ):void{ _service.getOperation(operation).addEventListener(mx.rpc.events.ResultEvent.RESULT, onDefaultGetHandler); startRemoteOperation( operation, eventType , arguments,callback ); } protected var _pendingOperations:flash.utils.Dictionary; protected var _service:mx.rpc.remoting.RemoteObject; protected var _requestTimeout:int=120; protected var _dispatcher:EventDispatcher; protected var _cachedOperations:Array; protected var _nonPollingChannelSet:mx.messaging.ChannelSet; private var _serviceUrl:String=null; private var _sourceData:String=null; private static var _instanceHash:Dictionary = new Dictionary(); } } class AmfRequestData{ public function AmfRequestData(_eventType:String=null){ eventType = _eventType; return; } public var callback:Function=null; public var eventType:String=null; public var operation:mx.rpc.AbstractOperation=null; public var recallOnError:Boolean=false; public var token:mx.rpc.AsyncToken=null; } class SingletonTemp{};
调用方法:
/** * @SsocService 后台接口调用类 * @getp_asset_eventCount 调用接口 * @[bTime,eTime,"I",ip]调用接口传入参数,必须放到数组中 * @getp_asset_eventCountHandler 回调函数名 */ SimpleAmf.instance("SsocService").request("getp_asset_eventCount",[bTime,eTime,"I",ip],getp_asset_eventCountHandler);
回调函数:
/** * callback(success:Boolean,response:Object,arguments:Object) * @success 是否调用城功 * @response 返回的数据 * @arguments 传入的调用参数 * */ private function getp_asset_eventCountHandler(success:Boolean,response:Object,arguments:Object):void { }
发表评论
-
Flex4之皮肤定制【Skin类和Skin类】
2013-10-05 19:19 1144第一、关于spark.skin.SparkSkin类的 ... -
基于 Cairngorm MVC 框架的 Flex 程序设计与开发
2013-10-05 18:38 991翟 峰, 开发工程师, IBM 吴 镝, IBM 实习生, I ... -
flex 4.5 simple spark button skinning
2013-09-24 22:09 1189Anyone missed the old simple me ... -
swf复制到其他文件夹出现安全错误的解决办法
2012-08-16 10:06 1222相信用Flash Builder/Flex Builder做开 ... -
在flex中使用model标签读取配置文件的方法
2012-08-16 09:54 9921.使用 Model标签 <mx:Model id=& ... -
Flex利用渲染器动态修改tree的icon图标
2012-08-16 09:50 1776Tree: <mx:Tree dataProvide ... -
flex xml操作
2012-04-25 10:48 1163今天我们来看看AS3中新的XML处理方法:E4X,直到现在,E ... -
Flex 创建过滤特定文件的FileReference
2012-03-01 16:13 1655下面的代码演示了Flex中如何创建一个可以过滤特定后缀文件的F ... -
Flex 根据图片url获取bitmapdata并绑定到多个Image
2012-03-01 14:40 3048private function getImage(url ... -
Flex 开始日期与结束日期DateField组件
2012-03-01 13:45 1826<?xml version="1.0&qu ... -
匹配已选中数据的某字段和下拉框数据
2012-03-01 08:41 1304package YD.Web.Common.Utils ... -
解决flex4 spark 找不到外观错误
2012-02-27 14:01 1905spark组件为了提高性能adobe做了很多努力,同 ... -
Flex垃圾回收和性能优化的一些总结
2012-02-27 11:30 1209本文是Kenshin根据一些对 ... -
【转】关于Flex未来走向的问答
2011-11-22 09:50 1763•转自:http://www.riadev.com/flex- ... -
Flex 关于validateNow方法
2011-11-18 10:42 2298validateNow(); 官方解释:验证并更新此对 ... -
Flex 数值转IP
2011-11-18 10:19 909package common { public cl ... -
Flex 关于遍历
2011-11-18 10:15 1041获取XML属性名、值 var x : XML = < ... -
Flash Builder编译的swf为什么在bin-debug下运行正常,复制到其他文件夹就不正常?
2011-11-08 16:54 1613相信用Flash Builder/Flex Bui ... -
Flex HttpService重用2
2011-09-28 13:30 1197HttpService工具类: package commo ... -
Unix时间戳转化AS3日期格式
2011-09-21 16:14 2299Unix时间戳:1254671828 返回:2009-10-1 ...
相关推荐
在Java后端,我们需要创建服务接口和实现类,这些接口将在Flex客户端通过AMF调用。接口设计应考虑到Flex的异步调用特性,通常使用Java的Servlet或Spring MVC来处理请求。 4. **Flex客户端调用**: 在Flex端,使用...
在本例子中,我们将探讨如何使用Flex与Java后端进行远程调用,借助Adobe的BlazeDS服务。BlazeDS是Flex与Java服务器之间通信的一个中间件,支持AMF(Action Message Format)协议,提供数据推送、拉取和消息代理等...
本文将深入探讨如何使用Flex与Java进行后台通信,以实现动态、实时的Web应用。首先,我们将从创建Java项目开始,然后讨论Flex中的关键配置,包括设置远程服务对象、通道设置和事件监听,最后分析通信过程中的异常...
Flex是一种强大的富互联网应用...总结,Flex通过数据绑定和服务调用来实现前台与后台的紧密集成,通过AMF通道高效地与数据库进行交互。理解并熟练运用这些技术,能帮助开发者创建功能强大、数据驱动的Flex应用程序。
2. **在Flex中创建服务调用**:在Flex中,可以通过`WebService`或`RemoteObject`组件来调用Java后台的服务。`WebService`适用于SOAP协议,而`RemoteObject`更适合于AMF。 3. **在Java端创建服务接口**:在J2EE...
2. **设置BlazeDS配置**:在项目的services-config.xml文件中,配置一个ChannelSet,定义与Java服务的连接。同时,创建一个Service来暴露Java后台的分页接口。 3. **编写Java服务**:在Java后端,创建一个服务类,...
总结,使用Flex的RemotingObject类与后台通信,主要涉及设置服务连接、定义服务接口、处理回调函数、调用服务方法等步骤。了解这些基本操作后,开发者可以轻松构建出与后台服务器紧密交互的Flex应用程序。通过不断的...
8. **Service**:服务接口定义了与后台数据交互的规范,Java后台通常会实现这些接口来提供服务。 9. **Presentation Model**:视图模型是一种设计模式,它将视图和业务逻辑分离,使得视图可以专注于显示数据,而...
以调用一个RESTful API为例,首先在Flex项目中添加HTTPService组件,然后配置其`url`属性指向API接口,`method`属性设置为GET或POST,`result`事件处理函数用于接收返回数据。在ActionScript代码中,可以动态设置...
本实例是Flex 4.0与Java后台通信的一个典型应用,主要目的是帮助初学者理解和掌握这两者之间的数据交换机制。运行说明通常会涵盖以下内容: 1. **环境配置**:首先,确保你已经安装了Adobe Flex Builder或类似的IDE...
- `*.jsp`:JSP后台接口,处理与Flex的交互。 - ` CairngormEvent.as`:自定义事件类。 - `*.xml` 或 `*.config`:配置文件,可能包含服务配置和事件映射。 通过深入学习和分析这些源文件,开发者可以了解Cairngorm...
通过AMF通道配置,使Flex客户端能够调用服务器端的方法。 6. **调试与测试**:开发过程中,需要进行客户端和服务器端的联合调试,确保数据传输无误。 7. **发布与部署**:完成开发后,将Flex应用打包成SWF文件,...
10. **部署与维护**:最后,部署时要考虑服务器配置,如BlazeDS/LCDS的设置,以及如何更新和维护服务端代码,而不影响正在运行的Flex应用。 以上是Flex和Hibernate整合的主要方面,实际开发中还需要结合具体项目...
在实际项目中,源码会包含J2EE的后台服务类、Flex的MXML视图和ActionScript业务逻辑代码,以及BlazeDS的配置文件。理解源码的关键在于理解AMF的序列化和反序列化过程,以及如何在Java和Flex之间传递数据对象。 六、...
例如,你可以创建一个名为`JavaService`的接口和`JavaServiceImpl`的实现类,然后在BlazeDS的配置文件(如services-config.xml)中将这个服务暴露为AMF端点。 ```java public interface JavaService { public ...
开发者可以通过这个Demo学习如何使用JDBC操作数据库,以及如何在Flex应用中利用BlazeDS调用Java服务,实现动态数据展示和交互。同时,这个Demo也展示了BlazeDS在企业级RIA开发中的强大功能,有助于提升Web应用的用户...
Flex应用通常通过HTTP或AMF协议与Java后台服务进行交互,使用 BlazeDS 或 LCDS (LiveCycle Data Services) 作为中间层来处理数据交换。开发者需要配置服务端的部署描述符文件(如services-config.xml)和Flex客户端...
在Flex+Spring的集成中,Spring主要负责处理业务逻辑和服务调用,通过HTTP或AMF(Action Message Format)与Flex客户端通信。 3. Hibernate:Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用对...
Flex的强项在于用户界面设计和动态交互,而Java擅长后台处理和数据管理。通过两者结合,我们可以创建既有美观界面又具备强大功能的应用。 4. **通信方式**: - **AMF(Action Message Format)**:AMF是一种高效...