yafei's profile要做就做到全球最棒 要麼就不做PhotosBlogListsMore ![]() | Help |
|
April 22 被迫對佈局做了一次變動昨天發現spaces.live對某些呈現做了變動,導致很多內容不能“有效”顯示,所以,不得不對佈局作了一次大的調整。 April 18 如果你不能發現在哪裏能獲得《PHP for Flash網站開發手札》因為最近很多書店均出現斷貨的情況,所以有一些用戶抱怨無法獲得《PHP for Flash網站開發手札》一書,不要著急,也許你可以在這裏能找到它的身影: 天龍書店 http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9867199812&sid=32332
在此之前不要忘記閱讀【完整、準確地把握Flash動態網站開發的知識體系】一文喲!!!
如果有更新或者補充的消息,我會在這裏公佈: 這個世界的遊戲有很多種,有時不經意間就陷入這場遊戲這個世界的遊戲有很多種,有時不經意間就陷入這場遊戲: Flash和.NET结合开发的利器_《.NET for Flash动态网站开发手札》_部分章节连载(8)8.5使用RemotingConnector组件和数据绑定RemotingConnector 是Flash的 一个数据组件,使用该组件你可以非常轻松的建立与远程服务的连接——该远程服务必须是通过Flash Remoting MX网关提供——并且可以调用远程服务所定义的方法函数,使用它只需要将该组件拖放到舞台上并定义组件参数,而且可以使用Flash的数据绑定功能。 我们在这里要介绍的是首先是通过编写脚本代码的方式使用RemotingConnector组件。 8.5.1编写脚本代码使用RemotingConnector组件要通过编写脚本代码的方式使用该组件,也必须首先在开始将RemotingConnector组件拖放到当前舞台上(或者只要在库中就可以了),然后才能开始编写代码使用该组件,这是使用该组件的第一步。 另外,在编写脚本代码时要导入RemotingConnector类,这是使用该组件编写脚本代码的第一步,可以使用下面的脚本语句: import mx.data.components.RemotingConnector; 下面我们就使用一个例子来看一下怎样使用该组件。 1打开前面一节我们创建的Restaurant_UIcomponent.fla文档,将文档另存为Restaurant_UIcomponent_RC.fla; 2保持文档处于主时间轴的编辑状态,改变主时间轴上的脚本代码如下: stop(); //------------------------------------------------------------- import mx.data.components.RemotingConnector; //导入RemotingConnector类 //构造RemotingConnector组件实例并定义实例属性 var my_rc:RemotingConnector = new RemotingConnector(); my_rc.addEventListener("result", returnData_Result); my_rc.addEventListener("status", returnData_Status); my_rc.gatewayUrl = "http://localhost/3JK/gateway.aspx"; my_rc.methodName = "test"; my_rc.serviceName = "3JK.Restaurant"; my_rc.suppressInvalidCalls = true; function GetRestaurantInfo():Void { if (selectedhotel_name == undefined && selectedhotel_flavor == undefined && selectedhotel_location == undefined) { //定义参数为空 my_rc.params = null; //触发连接,调用远程服务方法 my_rc.trigger(); } else { //定义传递给远程服务方法的参数 my_rc.params = {hotel_name:selectedhotel_name, hotel_flavor:selectedhotel_flavor, hotel_location:selectedhotel_location}; //触发连接,调用远程服务方法 my_rc.trigger(); selectedhotel_name = "正在加载数据"; } } function returnData_Result(ev:Object) { //接收结果 main_mc.list_lb.removeAll(); main_mc.list_lb.dataProvider = ev.target.results; selectedhotel_name = ""; fetchOK = 1; main_mc.resultRecordSet = ev.target.results; } function returnData_Status(stat:Object) { //接收错误 trace("接收到错误"); } //初始化 function ini():Void { if (this.inited != undefined) { return; } else { var inited:Boolean = true; GetRestaurantInfo(); } } ini(); 现在我们可以测试一下文档了,可以看到与前面的效果相同。
April 16 Flash和.NET结合开发的利器_《.NET for Flash动态网站开发手札》_部分章节连载(7)8.4.1使用DataGlue.bindFormatStrings()方法绑定记录集可 以使用DataGlue.bindFormatStrings()方法在一个Flash UI组件(例如组合框和列表框)中显示RecordSet。下面的一段ActionScript脚本代码将结果RecordSet绑定到名为 displayNames的列表框UI组件: DataGlue.bindFormatStrings(displayNames, result, "#ContactName#", "#customerID#"); 在 这一段代码中,后两个参数被传递给方法(#ContactName#和#customerID#是记录集的字段名)。当用户选择组件中一个特殊的纪录时, ContactName列被显示在UI组件中,而customerID列被返回。下面,我们来改造一下前面的例子,看一下如何使用DataGlue类。 1打开前面一章我们创建的Restaurant_UIcomponent.fla文档,将文档另存为Restaurant_UIcomponent_DataGlue.fla; 2保持当前位于主时间轴编辑状态,修改主时间轴上的脚本代码。在”动作”面板上追加下面的一行脚本代码: import mx.remoting.DataGlue; 3在舞台上双击影片剪辑元件实例main_mc,使影片剪辑元件main处于编辑状态,选中层Script。保持该层被选中,在”动作”面板上修改其中的脚本代码: 将下面的一段脚本代码: newRecordSet = new RecordSet("hotelName"); for (var i = 0; i<resultRecordSet.getLength(); i++) { newRecordSet.addItemAt(i, {hotelName:resultRecordSet.getItemAt(i).hotel_name}); } if (newRecordSet.isFullyPopulated()) { newRecordSet.addItemAt(0, {hotelName:"请选择一个酒家或酒店"}); hotelName_cb.setDataProvider(newRecordSet); } 替换为 DataGlue.bindFormatStrings(hotelName_cb, resultRecordSet, "#hotel_name#","#hotel_name#"); 可以看到,前面多行代码实现的功能,现在只需一行就可以实现了。 4因为现在是使用DataGlue类,所以对于UI组件的读取方式也应该改变一下。在本例中,这段脚本代码位于函数applyFilter()体内: 将下面的一段脚本代码 list_lb.dataProvider = resultRecordSet.filter(thisFilter, hotelName_cb.selectedItem["hotelName"]); 替换为 list_lb.dataProvider = resultRecordSet.filter(thisFilter, hotelName_cb.selectedItem.label); 5最后可以测试一下效果,可以看到与前面的例子功能相同。 现在马上出发
April 10 關於《Java FOR FLASH動態網站開發手札》所用rowset-1_0-ea4在《Java FOR FLASH動態網站開發手札》一書中所用rowset-1_0-ea4用戶可能找不到下載地點,因為sun已經刪除了這個鏈結。
April 06 Flash和.NET结合开发的利器_《.NET for Flash动态网站开发手札》_部分章节连载(6)8.4使用DataGlue对象处理记录集数据要在一个Flash UI组件中显示RecordSet记录集,一般可以使用该组件内建的setDataProvider()方法或者dataProvider属性,但是如果想在一个Flash UI组件中显示记录集中某一字段下的所有记录,就比较困难了。 例 如,在前面的例子中,我们要在一个下拉列表框组件中显示记录集中酒店名,就必须首先创建一个新的单字段记录集,将原记录集中该字段的数据填充新的单字段记 录集,然后再使用组件的setDataProvider()方法或者dataProvider属性,显然,这比较麻烦,而且占用的资源也比较多。 为 了解决这个问题,Flash Remoting MX还内建了名为DataGlue的ActionScript类。使用DataGlue ActionScript类文件也可以在一个Flash UI组件中显示RecordSet记录集。DataGlue ActionScript类文件随同Flash Remoting MX组件一起被安装,要使用它,必须导入相应的类库,可以使用下面的一行脚本: import mx.remoting.DataGlue; DataGlue类有两个内建的方法:DataGlue.bindFormatStrings()和DataGlue.bindFormatFunction(),使用这两个方法都可以在Flash UI组件(例如组合框和列表框)中显示记录集。现在马上出发 作者邀您访问他的BLOG: http://zhang-yafei.spaces.live.com(繁体) Flash和.NET结合开发的利器_《.NET for Flash动态网站开发手札》_部分章节连载(5)第08章 在Flash影片应用程序中处理记录集结果要 连接到.NET应用程序服务器上的Flash Remoting MX服务并且调用远程服务方法,就必须使用mx.remoting和mx.rpc这两个ActionScript类库:这两个类库包含了所有的Flash Remoting MX for ActionScript 2.0类和方法实现。 其中,mx.remoting是一个十分核心的ActionScript类库,它包含了用来与应用程序服务器建立连接的所有对象及方法,而mx.rpc可以用来调用远程方法并处理结果。 在 前面的章节中,我们介绍了如何通过Flash Remoting MX网关服务在ASP.NET网页中向Flash影片应用程序传递数据,也介绍了如何使用Flash影片应用程序向ASP.NET网页传递参数,并且介绍 了如何使用Flash Remoting MX for .NET与ADO.NET数据库查询结合调用数据库,而且创建了两个简单的例子。 但 是,当从ASP.NET网页向Flash影片应用程序传递的数据被接收到时,如何处理接收到的结果呢?我们在前面的例子中已经使用了一些方法,但这只是在 Flash影片应用程序中处理结果丰富方法中最简单的,Flash Remoting MX for ActionScript 2.0客户端组件内置了丰富的ActionScript脚本语法用来处理结果。 本章就来详细地介绍一下这些ActionScript脚本语法。 现在马上出发
Flash和.NET结合开发的利器_《.NET for Flash动态网站开发手札》_部分章节连载(4)第06章 Flash Remoting和AMF-RPC for .NET基础入门在前面的章节,我们介绍了Flash如何通过中间件ASP.NET网页与服务器之间实现数据交换,了解了Flash影片应用程序如何融入到网络应用环境的最一般原理,有了基本的创建具有网络交互功能Flash影片应用程序的基本知识。 这一章,我们将开始使用Flash的一个最重要的服务器组件AMF-RPC来实现与Flash影片应用程序的交互,用户可以感受到更加强烈的Flash网络应用程序“感觉”,从而可以更轻松的创建功能更强大的Flash网络应用程序——这就是“富媒体应用程序”。 使用Flash作为开发工具,我们现在可以开始学习怎样使用AMF-RPC创建更为强大而且易用的富媒体应用程序了。 6.1 Flash Remoting基础和AMF-RPC基础随着互联网不断介入应用程序开发的各个领域,协调运算便不断成为应用程序开发所追求的方向。应用开发也随之形成了一种习惯:即将应用程序构建成一组组件,分布于计算机网络之间,并作为整个程序的一部分一起运行,这便是分布式应用程序。 为 了实现这一目标,人们创建了各种各样的技术。例 如,Microsoft的DCOM(分布式组件对象模型)、Object Management Group的CORBA (公共对象请求代理程序体系结构)、Sun的RMI (远程方法调用)。这些技术提供了可靠的、可升级的体系结构,以满足对应用程序日益增长的需要。 但是,目前要实现它们的话,存在着不少的问题。DCOM在跨防火墙工作时会有问题,因为它是建立在私有协议上的;而CORBA存在有多种不同接口的问题;RMI的应用有些麻烦,因为你不得不去搜寻一个对象,然后才能调用方法。 并且,随着计算机客户端软件不断的异化,必须保证各种各样的软件终端都可以连接到远程的服务组件,并能够实现互操作。于是基于XML的远程过程调用(RPC)便应运而生,比较知名的RPC包括XML-RPC和WEB服务,这些技术都是Remoting技术。 Remoting技术的实现必须包含两个方面: 1Remoting Channel:这是指客户端和服务端的通信协议,例如我们可以使用TCP、HTTP协议。 2Serializer:这是指在传输时采用何种格式来传输数据,例如我们可以采用Binary,也可以采用SOAP来传输XML格式的数据。 客户端的数据经过序列化通过HTTP被传递到远程服务端,在服务端,一般会有一个代理(网关)接收并将数据逆序列化,从而执行位于服务端的方法,并返回给客户端。 随 着Flash不断介入应用程序开发的各个领域,作 为一个流行的应用程序终端,用于Flash的Remoting实现也日渐多了起来,从最早应用于Flash 5的SQL Component Kit,到现在日渐流行的XML-RPC、WDDX、Flash Remoting MX(AMF-RPC)等。 AMF-RPC是目前最重要的Flash Remoting技术。
6.1.1 AMF-RPC技术简介AMF -RPC是使用AMF 数据格式实现的远程方法调用,Macromedia公司为此出品了三个个实现:Flash Remoting MX for J2EE、Flash Remoting MX for .NET和Flash Remoting MX for ColdFusion,并且开源社区也为AMF-RPC编写了一个在PHP架构下的实现,名为AMFPHP(也可以称为Flash Remoting MX for PHP)。 就如其它的RPC 工具一样,AMF-RPC是一个应 用程序服务器网关,它在Flash影片应用程序和远程服务之间提供一个相互通信的网络通道:在这个通道间传输的是AMF格式的数据(AMF是专用于 Flash远程数据传输的一种数据格式);远程服务则包含各种应用服务技术(例如JavaBeans、ColdFusion组件和网页、ASP.NET网 页或者Web服务等等)。 和其它的连接到外 部数据提供者的技术相比,AMF- RPC的优点是不言而喻的。在前面一章我们介绍的像getURL、loadVariables、XML和XMLSocket等语句,它们都是使用的简单的 HTTP功能,一般都离不开内建的类如Request和Response这样的语法,而AMF-RPC则有其独特的一面,总的说来有下列优点: 1易用。AMF-RPC可以对本地远程服务程序代码(Java,CFML,PHP,VB和C#)的数据类型进行自动转换:可以转换成ActionScript代码数据类型,也可以转回本地远程服务程序代码数据类型。 2 高性能。AMF-RPC使用Action Message Format(AMF)将Flash影片应用程序和远程服务之间的通信信息序列化。AMF是一个二进制格式,符合Simple Object Access Protocol(SOAP)协议格式,通信更加快速。 3可扩展性。AMF-RPC设计的时候集成了现有应用程序设计模式和最佳的开发实践,从而可以满足高度扩展性Flash网络应用程序设计要求。 要了解这些优点,最好是先来看一个简单的使用AMF-RPC创建的Flash网络应用程序。
现在马上出发
April 02 無知、希望、貪婪、恐慌將是後面演出的主角,並輪番推動著市場的演繹“甚合吾意”,當有人這麼講時,我的評價就是這麼簡單。 “時光似乎又回到了2006年八九月份”,他用這樣一句話開頭,顯得很親切。因為我親身經歷過,所以這並不陌生: http://www.ftchinese.com/sc/story.jsp?id=001010446&pos=MID_HLB&pa1=0&pa2=0&loc=HOMEPAGE
Flash和.NET结合开发的利器_《.NET for Flash动态网站开发手札》_部分章节连载(3)第Ⅱ篇 Flash网络应用程序和Flash Remoting在第一篇,我们介绍了.NET for Flash的基本原理,了解了怎样使用Flash内建的功能方法与.NET实现交互,这种交互方式其实是一种极其简单的HTTP操作,来回传递的都是字符串格式的数据(XML也是字符串,需要解析为DOM)。 人们需要一种更为简洁的方式能够实现类似Native的操作,于是Flash Remoting便应允而生,这符合IT工业的一贯标准。 在这一篇,我们将介绍怎样使用包括XML-RPC、WDDX、SOAP和AMF-RPC(Flash Remoting MX、Fluorine和AMF.NET)等在内的Flash Remoting技术,开发人员可以更轻松的完成过去需要编写很多代码才能完成的任务。 本篇包含很多的章节,是本书的主体部分,主要就是介绍怎样使用各种Remoting工具实现.NET for Flash的强大体验。
|
|
|