ColdFusion MX 远程服务实例入门教程

    这个教程分二个部分:1 创建CF组件2创建flash应用.在开始之前请新建一个站点.一 创建CF组件:这里我们创建一个组件 定义二个函数[chaxun1,chaxun2],函数使用exampleapps 数据库源,返回一个查询结果对象, flash电影文件调用组件方法和接收返回的查询结果.chaxun1函数需要三个参数,这些参数从flash电影中传递过来.(参数为xing ming cheng)
        创建的步奏如下所示: 使用dwmx(Dreamweaver MX的简称,下同), 文件→新建: 新建文档对话框,常规卡,动态页,选择ColdFusion组件.[如图]


      打开组件面板[窗口→组件] 点击+ 新建一个组件 如图所示:“名称”框指定 .cfc 文件名。输入名称时不要指定 .cfc 文件扩展名。“组件目录”框指定将要保存该组件的位置。为组件增加二个函数:访问方式设定为如果您从“访问”菜单中选择“远程”,则该函数可用作 Web 服务。请确保在“返回值类型”框中指定该函数返回的值的合适类型。增加参数为函数定义一个或多个参数,请从“部分”列表中选择“参数”,从弹出式菜单中选择该函数,单击加号 (+) 按钮,然后在右边输入新参数的详细信息。 [为该函数增加三个参数,类型均为字符串] 
      为函数增加主体: 窗口/绑定 单击+ 选择列表中的记录集(查询) 增加一个记录集 Recordset1输入下面的查询代码:


    SELECT tblEmployees.EmployeeID, tblEmployees.DeptIDFK, tblEmployees.FirstName, tblEmployees.LastName, tblDepartments.DepartmentName
    FROM tblEmployees, tblDepartments
    WHERE tblEmployees.DeptIDFK = tblDepartments.DepartmentID
    <cfif isDefined(“ming”)>
    and tblEmployees.firstName like ‘#ming#%’
    </cfif>
    <cfif isDefined(“xing”)>
    and tblEmployees.lastName like ‘#xing#%’
    </cfif>
    <cfif isDefined(“cheng”)>
    and tblDepartments.DepartmentName like ‘#cheng#%’
    </cfif>
    ORDER BY tblEmployees.LastName, tblEmployees.FirstName



    用同样的方法增加Recordset2



      将文档切换到代码视图,剪切 Recordset1[<cfquery >…</cfquery >] 到 查询1的<!— chaxun1 body —>后粘贴,用同样的方法Recordset2 到查询2. 然后设置<cfreturn > 查询1 设置为<cfreturn Recordset1>


      查询2 设置为<cfreturn Recordset2>


      文件/保存文件.关闭dwmx ,启动flashmx.


    二 创建flash影片.


      1 文件→新建 新建一个flash 影片 .新建一层,命名为script,层一命名为ui .
    选择组件Flash MX UI 组件 托放几个组件到文档中,设置如图:



    代码拷贝框




    以下是引用片段:
    #include “NetServices.as”
    #include “NetDebug.as”
    #include “DataGlue.as”
    if (inited == null)
    {
    // 仅执行一次的代码
    inited = true;
    // 设置默认网关url
    NetServices.setDefaultGatewayUrl(“http://localhost:8500/flashservices/gateway”);
    // 连接到网关
    gateway_conn = NetServices.createGatewayConnection();
    // 返回一个服务的引用
    myService = gateway_conn.getService(“FLASHTEST.chaxun”, this);
    }
    function 查询 ()
    {trace(工程.getSelectedItem().label);
    trace(名字.text);
    trace(姓氏.text);
    myService.chaxun1(名字.text, 姓氏.text, 工程.getSelectedItem().label);
    }
    function chaxun1_Result(result){
    DataGlue.bindFormatStrings(显示框, result, “#LastName#, #FirstName# ,#DepartmentName#”, “#EmployeeIDFK#”);
    }
    function chaxun2_Result(result ){
    DataGlue.bindFormatStrings(工程, result, “#DepartmentName#”, “#DepartmentID”);
    }
    myService.chaxun2();


    运行的结果如下所示: