- 浏览: 81638 次
- 性别:
- 来自: 四川
-
最新评论
-
iceblue510808:
你好,能给我发下你写的这个吗?想学习下,谢谢了Adobe Bu ...
Flex图文混排 -
sxy09:
diding 写道xingfustar 写道哥们,够狠,可以共 ...
Flex图文混排 -
sxy09:
给份源码吧,学习研究下 419119915@qq.com
Flex图文混排之后期开发 -
zhangxiaopei:
哥,你还在吗?能发一份源码给我吗?谢谢,不甚感激邮箱:zhan ...
Flex图文混排之后期开发 -
zhangxiaopei:
兄弟能给源码给我吗?谢谢邮箱zhangoceansoft@12 ...
Flex图文混排
[纯AS的RemoteAMF3]
目前支持:AMFPHP,CFC,Fluorine,LCDS
一.怎么使用
//指明amfURL var amfChannelUri:String="http://192.168.1.102/CompanyWebSite/amfphp/gateway.php"; //AMF服务 var AMFServer:String="amfphp" //单例,包地址,amfURL var MyAMFDM:AMFDataManager=AMFDataManager.getDataManager(AMFServer,"website.admin.LoginPage",amfChannelUri) //执行方法名,有参数可带参数 MyAMFDM.makeRemoteCall("doLogin","帝鼎","zx8974sczzez21dd") //侦听 MyAMFDM.addEventListener(ResultEvent.RESULT, myResultHandler); MyAMFDM.addEventListener(FaultEvent.FAULT, handleFault);
二.简单例子
1.整合FluorineFX的例子:
MXML:(注,这是在Flex4 SDK下编译的)
<?xml version="1.0" encoding="utf-8"?> <Application xmlns="http://ns.adobe.com/mxml/2009" layout="absolute" creationComplete="DDinit();"> <Script source="AppAS/FluorineFX.as"/> </Application>
FluorineFX.as:
import mx.collections.ArrayCollection; import mx.events.ResizeEvent; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import net.diding.managers.AMFDataManager; private var IDArray:Array; private var userNameArray:Array; private var userPWDArray:Array; private var items:ArrayCollection /************************************************ * FluorineFX * **********************************************/ private function DDinit():void{ var amfChannelUri:String="http://192.168.1.102/MSWeb/Gateway.aspx"; var AMFServer:String="fluorine" var MyAMFDM:AMFDataManager=AMFDataManager.getDataManager(AMFServer,"net.diding.CheckUser",amfChannelUri) MyAMFDM.makeRemoteCall("GetData"); MyAMFDM.addEventListener(ResultEvent.RESULT, myResultHandler); MyAMFDM.addEventListener(FaultEvent.FAULT, handleFault); } private function myResultHandler(rs:ResultEvent):void{ trace(rs.result) var re:Array=rs.result.tables.serverInfo.initialData as Array; var TableInfoLength:Number=rs.result.tables.serverInfo.columnNames.length; var cant:Number = rs.result.tables.serverInfo.totalCount; IDArray=[]; userNameArray=[]; userPWDArray=[] for(var i:int=0; i<re.length;i++){ for(var j:int=0;j<TableInfoLength;j++){ var columName:String=rs.result.tables.serverInfo.columnNames[j]; switch(columName){ case "id": IDArray.push(re[i][j]); break; case "userName": userNameArray.push(re[i][j]); break; case "userPWD": userPWDArray.push(re[i][j]); break; } } } ShowList(IDArray,userNameArray,userPWDArray) } private function ShowList(IDArray:Array,userNameArray:Array,userPWDArray:Array):void{ items = new ArrayCollection(); items.removeAll(); for(var i:int =0;i<IDArray.length;i++) { var obj:Object = new Object(); obj.id = IDArray[i]; obj.userName=userNameArray[i]; obj.userPWD=userPWDArray[i]; items.addItem(obj); } //MyDataDG.dataProvider=items; } private function handleFault(event:FaultEvent):void{ trace("error==="+event) }
2.整合AMFPHP1.9的例子:
MXML:同上,只需要改变
<Script source="AppAS/AMFPHP1.9.as"/>即可
AMFPHP1.9.as
import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import net.diding.managers.AMFDataManager; private function DDinit():void{ /************************************************ * AMFPHP1.9 * **********************************************/ var amfChannelUri:String="http://192.168.1.102/CompanyWebSite/amfphp/gateway.php"; var AMFServer:String="amfphp" var MyAMFDM:AMFDataManager=AMFDataManager.getDataManager(AMFServer,"website.admin.LoginPage",amfChannelUri) MyAMFDM.makeRemoteCall("doLogin","帝鼎","zx8974sczzez21dd") MyAMFDM.addEventListener(ResultEvent.RESULT, myResultHandler); MyAMFDM.addEventListener(FaultEvent.FAULT, handleFault); } /******************************************* * @amfphp返回 * ******************************************/ private function myResultHandler(event:ResultEvent):void{ var RData:Boolean=event.result as Boolean ShowAMFPHPReturnData(RData) } private function ShowAMFPHPReturnData(RData:Boolean):void{ trace(RData) } private function handleFault(event:FaultEvent):void{ trace("error==="+event) }
3.整合Flex+ColdFusion_CFC+Jrun+MySQL2005
MXML:同上,只需要改变
<Script source="AppAS/Flex_CFC_Jrun_MySQL2005.as"/>即可
Flex_CFC_Jrun_MySQL2005.as
import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import net.diding.managers.AMFDataManager; private function DDinit():void{ /************************************************ * Coldfusion CFC * **********************************************/ var amfChannelUri:String="http://192.168.1.102:8300/flex2gateway/"; var AMFServer:String="ColdFusion" var MyAMFDM:AMFDataManager=AMFDataManager.getDataManager(AMFServer,"DidingCFC.helloworld",amfChannelUri) MyAMFDM.makeRemoteCall("sayHello") MyAMFDM.addEventListener(ResultEvent.RESULT,myResultHandler); MyAMFDM.addEventListener(FaultEvent.FAULT, handleFault); } private function myResultHandler(event:ResultEvent):void{ /******************************************* * @CFC返回 * ******************************************/ var rs:Object=event.result as Object ShowCFCReturnData(rs) } private function ShowCFCReturnData(rs:Object):void{ for(var i:int=0; i<rs.length; i++){ trace(rs[i].id) trace(rs[i].userName); trace(rs[i].userPWD) } } private function handleFault(event:FaultEvent):void{ trace("error==="+event) }
4.整合Flex+LCDS+Jrun+MSSQL2005
MXML:同上,只需要改变
<Script source="AppAS/Flex_LCDS_Jrun_MSSQL2005.as"/>即可
Flex_LCDS_Jrun_MSSQL2005.as
import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import net.diding.managers.AMFDataManager; private function DDinit():void{ /************************************************ * LCDS不支持指定源,所以第二个参数设为null,Jrun配置 * **********************************************/ var amfChannelUri:String="http://192.168.1.102:8600/blazeds/messagebroker/amf" var AMFServer:String="TestJavaMySQL" var MyAMFDM:AMFDataManager=AMFDataManager.getDataManager(AMFServer,"net.diding.ReadFlexJavaData",amfChannelUri) MyAMFDM.makeRemoteCall("getNotices") MyAMFDM.addEventListener(ResultEvent.RESULT, myResultHandler); MyAMFDM.addEventListener(FaultEvent.FAULT, handleFault); } /******************************************* * @LCDS返回 * ******************************************/ private function myResultHandler(event:ResultEvent):void{ var rs:Object=event.result as Object ShowAMFLCDSReturnData(rs) } private function ShowAMFLCDSReturnData(RData:Object):void{ for(var j:int=0;j<RData.length;j++){ trace(RData[j].userName) } } private function handleFault(event:FaultEvent):void{ trace("error==="+event) }
三.AS RemoteAMF3类源码:
AMFDataManager.as
package net.diding.managers { import flash.events.EventDispatcher; import mx.managers.CursorManager; import mx.messaging.Channel; import mx.messaging.ChannelSet; import mx.messaging.channels.AMFChannel; import mx.rpc.AbstractOperation; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.rpc.remoting.mxml.RemoteObject; /************************************************************* * --AMFDataManager-- * @四川资中二中 帝鼎2008.06 * 单例类,先创建类,然后用创建的类调用getDataManager(); * 目前支持:AMFPHP1.9,CFC,FluorineFx,LCDS * ***********************************************************/ public class AMFDataManager extends EventDispatcher { private var CFsvc:RemoteObject; private var CFSource:String; private static var instanceMap:Object=new Object(); private var amfChannelSet:ChannelSet public function AMFDataManager(pri:PrivateTempClass, dest:String, CFSource:String, amfChannelURI:String) { this.CFsvc=new RemoteObject(); CFsvc.destination=dest; CFsvc.source=CFSource; CFsvc.showBusyCursor=true; setUpAmfChannel(amfChannelURI) } public function setUpAmfChannel(amfChannelURI:String):void { var amfChannelID:String=JudgeAMFSvc(amfChannelURI) var amfChannel:Channel=new AMFChannel(amfChannelID, amfChannelURI) amfChannelSet=new ChannelSet(); amfChannelSet.addChannel(amfChannel); this.CFsvc.channelSet=amfChannelSet; } private function JudgeAMFSvc(gAMFSvc:String):String { var returnSvcKind:String; var num:Number=gAMFSvc.lastIndexOf("/"); var theString:String=gAMFSvc.substring(num + 1); //cfc if (theString.length == 0) { returnSvcKind="my-cfamf" } else { //amfphp if (theString == "gateway.php") { returnSvcKind="my-amfphp"; } else //fluorine if (theString == "Gateway.aspx") { returnSvcKind="my-amf" } else //java if (theString == "amf") { returnSvcKind="my-amf" } } return returnSvcKind; } public static function getDataManager(CFsvc:String, Source:String, amfChannelURI:String):AMFDataManager { var CFSource:String=Source; if (AMFDataManager.instanceMap[CFSource] == null) { AMFDataManager.instanceMap[CFSource]=new AMFDataManager(new PrivateTempClass(), CFsvc, CFSource, amfChannelURI); } var MyAMFDM_ER:AMFDataManager=AMFDataManager.instanceMap[CFSource]; return MyAMFDM_ER; } public function makeRemoteCall(methodName:String, ... args:Array):void { var op:mx.rpc.AbstractOperation=CFsvc[methodName]; op.makeObjectsBindable=true; CFsvc.addEventListener(ResultEvent.RESULT, doResults); CFsvc.addEventListener(FaultEvent.FAULT, doFault); if (args.length > 0) { op.send.apply(null, args); } else { op.send(); } } private function doResults(result:ResultEvent):void { CursorManager.removeBusyCursor(); dispatchEvent(new AMFResultEvent(ResultEvent.RESULT, false, true, result.result)); } private function doFault(fault:FaultEvent):void { CFsvc.showBusyCursor=false this.dispatchEvent(fault); } } } class PrivateTempClass { public function PrivateTempClass() { } }
AMFResultEvent.as
package net.diding.managers { import flash.events.Event; import mx.messaging.messages.IMessage; import mx.rpc.AsyncToken; import mx.rpc.events.ResultEvent; public class AMFResultEvent extends ResultEvent { public function AMFResultEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=true, result:Object=null, token:AsyncToken=null, message:IMessage=null) { super(type, bubbles, cancelable, result, token, message); } override public function clone():Event { return new AMFResultEvent(type, bubbles, cancelable, result, token, message); } } }
发表评论
-
Flex 4.5 – Using Mobile View Transitions
2011-05-18 16:45 2529收录的一篇文章: 原文地址:http://devgirl.or ... -
Flex Array多参数排名(含有并列名次)
2011-04-25 21:52 1550最近有一个项目,客户不仅要求报表同时呈现: 1.员工在整个公司 ... -
从数据库读取数据并在Tree上分组呈现
2011-04-06 23:34 2393最近有一项目,需要从mysql数据库读取数据,到Flex中呈现 ... -
Flex Air 周边整合之碎语
2011-03-05 20:13 2069手边近期有一个项目( ... -
SDK 4.5 (Hero)TextLayout 随记
2010-11-15 22:24 4162TextLayout前沿更新: http://sourcefo ... -
Flex4.5 Hero
2010-11-06 21:03 3074Flex4.5 已在10.24发布,今天终于静下来玩玩它了 下 ... -
Flex4 Declarations in ActionScript
2010-11-02 20:26 3063抽空整理Cairgorn3时,由于喜欢Code,而不喜欢Blo ... -
AS3公历转农历和农历转公历
2010-11-01 21:49 528今天例行整理硬盘中的文件时,看到收录一篇JAVA农历转公历的类 ... -
Flex DataGrid 内嵌AutoCompleteDataGrid
2010-10-27 23:26 1117这个东东是根据flashcommand的AutoComplet ... -
Flex DataGrid 内嵌ComboBox 再内嵌一个 DataGrid
2010-10-27 23:10 1528由于设计需要,曾要用到一个功能模块,但由于数据量的问题,最终p ... -
美发城的烫染护理系统和仓库管理软件
2010-10-27 23:06 1133这段时间,做了两个软件:美发城的烫染护理系统和仓库管理软件 P ... -
Flash Builder 4 的一个作品
2009-07-27 10:33 7887月17日放假,到现在完成了一个网站,记录一下 http:// ... -
AS3获取Jpg图像长宽
2009-03-28 12:32 2166一个老外的比较有用的类,自已整合到自已的utls包中: 1.用 ... -
Flex存bmp图像
2009-03-28 12:13 2203前言: 这阵子没事在研究buzzword,并试图还原前台,费 ... -
Flex图文混排之后期开发
2009-03-07 22:14 6784一:now SDK: flex_sdk_4.0.0.61 ... -
FxTextArea插入图片后,图片上方空隙的解决
2009-03-02 21:51 2448由于开发一个运行期间由用户来设置dg表,无意间打开Navica ... -
Flex Datagrid 行列增加和删除(支持右键)
2009-03-02 19:28 12075目前能实现的功能: 1.支持编辑表头; 2.删除添加自动更新序 ... -
Flex提交Datagrid数据存为xml
2009-03-01 14:38 3174Flex 代码区 MyDataDG为datagrid,执行提 ... -
采用AS开发Module
2009-03-01 13:34 13101.采用ModuleLoader /********** ... -
Flex图文混排
2009-03-01 13:26 7058这几天没事,学习Gumbo的FxTextArea,开发了一个F ...
相关推荐
【标题】:“AS3 视频播放器 纯AS3” 在AS3(ActionScript 3)中创建一个视频播放器是一项常见的任务,尤其对于Web开发者和多媒体设计师来说。AS3是Adobe Flash Professional和Flex Builder等工具所使用的编程语言...
标题"纯AS3链接本地数据库"暗示我们将不依赖任何外部库,如asSQL-Beta2.8.swc或rps.swc,而是使用AS3的原生功能来实现这一目标。这通常意味着我们需要构建自定义的通信层,以便与MySQL数据库进行交互。 在AS3中,...
AS3CoreLib是ActionScript 3(AS3)的一个重要扩展库,被广泛用于增强标准AS3类库的功能。这个库是由Adobe官方推荐的,它提供了许多实用的工具和类,帮助开发者更高效地处理各种任务,如图像处理、数组操作、网络...
在本文中,我们将深入探讨如何使用ActionScript 3(AS3)实现各种图片切换效果,如渐变、电视墙、滴水融化、百叶窗、拉滑块和划入等。ActionScript是Adobe Flash Professional和Flex SDK中的主要编程语言,用于创建...
本文将围绕一个纯AS3编写的贪吃蛇游戏源码进行深度剖析,帮助读者理解游戏的实现机制,进一步提升AS3编程技能。 贪吃蛇游戏,作为一款经典的游戏,其简单易懂的规则和高度可玩性使其深受玩家喜爱。这款游戏的核心...
《纯AS3实现的打砖块游戏解析》 在IT行业中,游戏开发是一项充满挑战与乐趣的任务,而ActionScript 3(简称AS3)作为Adobe Flash Platform的主要编程语言,为开发者提供了丰富的工具来构建交互式的网页应用和游戏。...
【纯AS3 简单切图工具源码】是一个基于Adobe ActionScript 3.0(AS3)开发的应用程序,用于将大图分割成多个小图。此工具的目的是提供一个基本的功能实现,而非追求复杂的用户界面。由于它依赖于Adobe AIR SDK 3.7,...
纯AS3做的AIR滑动列表,在设备上触摸滑动效果,
```as3 var drawArea:Sprite = new Sprite(); addChild(drawArea); ``` 2. **设置绘图路径**:在`Sprite`对象上,我们需要创建一个`Graphics`实例,并开启一个新的绘图路径。 ```as3 drawArea.graphics.beginFill...
在本项目“AS3 纯代码时钟”中,开发者使用AS3编写了一个时钟应用,这涉及到AS3的基础语法、时间处理和舞台显示对象等知识点。 1. **AS3基础语法**:AS3是面向对象的语言,具有类和对象的概念。在创建时钟的过程中...
### 纯AS3下访问WebService方法总汇 在Adobe Flash Platform中,ActionScript 3 (AS3) 提供了多种方法来实现客户端与服务器之间的交互。本文将详细介绍如何使用AS3来访问Web Service,包括具体的实现代码示例。 ##...
在本场景中,"as3纯代码下雨效果"指的是利用AS3编写程序来模拟逼真的雨滴下落动画。这种效果通常通过在舞台上动态生成和管理大量图形对象来实现,为观众提供一种沉浸式的视觉体验。 1. **基本概念**: - AS3:...
纯AS3代码实现百叶窗效果的核心代码,希望支持。。。。。
这篇心得将探讨如何创建一个自定义的纯 AS3 Alert 类,以便更方便地在项目中使用。 首先,我们需要创建一个名为 `Alert` 的类,这个类将包含所有与弹出对话框相关的功能。这个类可以有如下的结构: ```as3 package...
标题中的“纯AS3图片切换效果-包括渐变,电视墙,滴水融化,百叶窗,拉滑块,划入”指的是使用ActionScript 3(AS3)编程语言实现的一种动态图片展示技术。AS3是Adobe Flash Professional和Flex Builder等开发工具的...
在Flash开发中,ActionScript 3 (AS3) 是一种强大的编程语言,用于创建交互式内容,动画,以及与外部资源进行通信。标题提到的"Flash AS3调用外部AS脚本"是一个常见的需求,特别是在处理复杂逻辑或者代码模块化时。...
【纯AS坦克大战源代码】是一个基于ActionScript 3(AS3)开发的坦克战斗游戏项目,它提供了从设计到实现的完整流程。这个源代码虽然存在一些缺陷,但作为一个学习和娱乐的参考资料,它可以帮助我们深入了解AS3编程在...
【标题】"AS3(ActionScript 3)帮助文档" 【描述】 ActionScript 3 (AS3) 是Adobe开发的编程语言,主要用于创建富互联网应用程序(RIA),尤其是在Flash平台上。AS3带来了许多与AS2相比的重大改进,包括类型检查、...
本项目“as3.0纯代码MP3播放器”是一个完全基于代码实现的音频播放解决方案,没有依赖任何图形用户界面(GUI)组件库,而是通过编写AS3代码来控制MP3文件的播放、暂停、停止、音量调整等功能。下面将详细介绍AS3.0中...
本资源“flash actionscript3 纯AS3代码_资源加载进度条.rar”显然是一个关于如何使用AS3实现资源加载进度条的示例代码包。下面将详细探讨AS3中的资源加载和进度条实现相关的知识点。 1. **AS3基本概念** AS3是...