zoukankan      html  css  js  c++  java
  • Flash 与 php 使用 amfphp

    创建 Flash 项目

    使用 Flash Builder 创建一个项目。

    创建 Flash 项目时,选择服务器技术为 PHP,并配置好服务器的 Web 根文件夹及根 URL 地址(这里设置根文件夹时,文件夹名称要与项目名称不同)。然后将输出文件夹放在根文件夹内。

    项目创建完后,可以加上一个 Button 来测试一下是否正确创建。代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    
        <fx:Script>
            <![CDATA[
                protected function buttonClick(event:MouseEvent):void {
                    button.label = "hello";
                }
            ]]>
        </fx:Script>
        <s:Button id="button" label="Click Me" click="buttonClick(event)"/>
    </s:Application>
    

    代码输入完成,运行(Ctrl+F11)应该正赏,然后进行 amfphp 的配置。

    amfphp 配置

    http://www.silexlabs.org/amfphp/ 下载 amfphp。本博下载的是 amfPHP 2.1 版本。

    将下载的压缩包中 Amfphp, BackOffice 放入到 Web 根文件夹中。此时 Web 根文件夹中应该有如下几个文件:

    f:/project/agiletaskweb/
    +- BackOffice
    +- Amfphp
    \- bin-debug
    

    输入 http://localhost/Amfphp 可以看到

    点击链接 If you are looking for the ... 可以看到已经提供的服务:

    接下来,加上自己的服务。在 Amfphp/Services 目录中创建一个 MyService.php 内容如下:

    <?php
    class MyService {
      public function echoback($param){
        return $param;
      }
    }
    ?>
    

    这是一个将传入的参数返回给客户端的服务(echo 服务)

    再刷新服务列表界面,可以看到创建的服务已经生效。

    使用 RemoteObject 调用服务

    回到 Flash Builder,将主文件的代码修改为如下:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    
        <fx:Script>
            <![CDATA[
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                protected function buttonClick(event:MouseEvent):void {
                    remoteObject.echoback("Receive from MyService");
                }
    
                protected function resuleHandler(event:ResultEvent):void {
                    button.label = event.result.toString();
                }
    
                protected function falseHandler(event:FaultEvent):void {
                    button.label = "Fault";
                }
    
            ]]>
        </fx:Script>
    
        <fx:Declarations>
            <s:RemoteObject id="remoteObject" destination="amfphp" source="MyService"
                            endpoint="http://www.agiletask.com/Amfphp/"
                            result="resuleHandler(event)" fault="falseHandler(event)"/>
        </fx:Declarations>
        <s:Button id="button" label="Click Me" click="buttonClick(event)"/>
    </s:Application>
    

    运行,点击按钮,即可以正确显示从服务器传回来的结果。

    RemoteObject 的主要变量:

    endpoint          # 指定服务所在 URL,指定为 http://domain/Amfphp
    destination       # 指定服务处理类,指定为 amfphp
    source            # 指定服务名称(与 Amfphp/Services 目录中的名称对应)
    
  • 相关阅读:
    C语言的数据、常量和变量
    C语言关键字、标识符和注释
    关于C/C++的一些讨论
    C++ 复合类型(上)
    C 函数
    C 字符输入输出和输入确认
    C++数据处理
    C控制语句:分支与跳转
    C++ 预备知识#关于C++
    范型在java中的应用
  • 原文地址:https://www.cnblogs.com/1si2/p/php_amf.html
Copyright © 2011-2022 走看看