yafei's profile要做就做到全球最棒 要麼就不做PhotosBlogListsMore Tools Help

Blog


    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動態網站開發的知識體系一文喲!!!

    如果有更新或者補充的消息,我會在這裏公佈:

    http://zhang-yafei.spaces.live.com/?_c11_blogpart_blogpart=blogview&_c=blogpart&partqs=cat%3d%25e5%259c%2596%25e6%259b%25b8%25e5%258b%2598%25e8%25aa%25a4



    這個世界的遊戲有很多種,有時不經意間就陷入這場遊戲

    這個世界的遊戲有很多種,有時不經意間就陷入這場遊戲:

    DoubleClick,這家曾經幾乎關門的公司;還得記住的是,幾年前這家幾乎成為英雄的公司;現在,它被Google收購了,雖然看不出來 Google收購它的意圖,但是,畢竟讓它有了一個好的歸宿。

    應該提醒大家的是,雖然幾乎倒閉,但DoubleClick仍是該行業的領頭羊。

    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();

    现在我们可以测试一下文档了,可以看到与前面的效果相同。


     现在马上出发


           作者邀您访问他的BLOG: http://zhang-yafei.spaces.live.com(繁体)
           作者邀您访问他的BLOG: http://blog.csdn.net/zhang_yafei/(简体)

    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最后可以测试一下效果,可以看到与前面的例子功能相同。 现在马上出发


           作者邀您访问他的BLOG: http://zhang-yafei.spaces.live.com(繁体)
           作者邀您访问他的BLOG: http://blog.csdn.net/zhang_yafei/(简体)

    April 10

    關於《Java FOR FLASH動態網站開發手札》所用rowset-1_0-ea4

    在《Java FOR FLASH動態網站開發手札》一書中所用rowset-1_0-ea4用戶可能找不到下載地點,因為sun已經刪除了這個鏈結。

    為了用戶測試方便,謹在此提供給大家下載。


    http://www.flashempire.net/attachment.php?attachmentid=38906



    我也邀請您經常訪問我的BLOG獲取更新資訊:

    http://zhang-yafei.spaces.live.com
    (繁體)
    http://blog.csdn.net/zhang_yafei/
    (簡體)

         
     


    最新版本》》》》》》:

    《PHP for Flash FMS動態網站開發手札》繁體第三版由上奇科技出版


          

    http://zhang-yafei.spaces.live.com/blog/cns!5358FA09E8EB6188!1264.entry

     
         

    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(繁体)
    作者邀您访问他的BLOG: http://blog.csdn.net/zhang_yafei/(简体)

    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脚本语法。 现在马上出发


           作者邀您访问他的BLOG: http://zhang-yafei.spaces.live.com(繁体)
           作者邀您访问他的BLOG: http://blog.csdn.net/zhang_yafei/(简体)

    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网络应用程序。

     

    现在马上出发


           作者邀您访问他的BLOG: http://zhang-yafei.spaces.live.com(繁体)
           作者邀您访问他的BLOG: http://blog.csdn.net/zhang_yafei/(简体)

    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的强大体验。
     现在马上出发


           作者邀您访问他的BLOG: http://zhang-yafei.spaces.live.com(繁体)
           作者邀您访问他的BLOG: http://blog.csdn.net/zhang_yafei/(简体)