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 目录中的名称对应)
    
  • 相关阅读:
    ZOJ3209 Treasure Map —— Danc Links 精确覆盖
    HUST1017 Exact cover —— Dancing Links 精确覆盖 模板题
    FZU1686 神龙的难题 —— Dancing Links 可重复覆盖
    POJ3074 Sudoku —— Dancing Links 精确覆盖
    HDU3085 Nightmare Ⅱ —— 双向BFS + 曼哈顿距离
    HDU3533 Escape —— BFS / A*算法 + 预处理
    HDU3567 Eight II —— IDA*算法
    HDU1560 DNA sequence —— IDA*算法
    FZU2150 Fire Game —— BFS
    POJ3087 Shuffle'm Up —— 打表找规律 / map判重
  • 原文地址:https://www.cnblogs.com/1si2/p/php_amf.html
Copyright © 2011-2022 走看看