创建 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="" minHeight=""> <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="" minHeight=""> <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 目录中的名称对应)

Flash 与 php 使用 amfphp的更多相关文章

  1. 【AS3】Flash与后台数据交换四种方法整理

    随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...

  2. [转]Flash、Flex、AS3.0框架及类库资源收集之十全大补

    原文地址:http://www.d5power.com/portal.php?mod=view&aid=27 APIs.Libs.Components1.as3ebaylibhttp://co ...

  3. CODE大全大量Flash网站收藏

    我的博客:CODE大全:www.codedq.net:业余草:www.xttblog.com:爱分享:www.ndislwf.com或ifxvn.com. http://www.wallop.com在 ...

  4. Flash&Flex大全

    官方在线帮助(没标英文的都是中文) 用于 Adobe Flash Platform 的 ActionScript 3.0 参考 更多参考使这样的链接下载离线版:http://help.adobe.co ...

  5. 隐私泄露杀手锏 —— Flash 权限反射

    [简版:http://weibo.com/p/1001603881940380956046] 前言 一直以为该风险早已被重视,但最近无意中发现,仍有不少网站存在该缺陷,其中不乏一些常用的邮箱.社交网站 ...

  6. 百度 flash html5自切换 多文件异步上传控件webuploader基本用法

    双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...

  7. 解决“chrome提示adobe flash player 已经过期”的小问题

    这个小问题也确实困扰我许久,后来看到chrome吧里面有人给出了解决方案: 安装install_flash_player_ppapi, 该软件下载地址:http://labs.adobe.com/do ...

  8. 在 Linux 中使用搜狗拼音输入法以及搞定 Flash 和支付宝

    在 Ubuntu 中安装搜狗输入法 在 Ubuntu Kylin 系统中,默认安装搜狗拼音输入法,但是在原生 Ubuntu 系统中则不是.这可以理解,毕竟搜狗输入法的 Linux 版有 Kylin 团 ...

  9. [异常解决] ubuntukylin16.04 LTS中关于flash安装和使用不了的问题解决

    http://www.linuxdiyf.com/linux/25211.html 归纳解决flash插件大法: 启动器中找到 软件更新,启动,点击 其它软件,把Canonical合作伙伴前方框 选上 ...

随机推荐

  1. Python切片

    切片是啥, 可以吃么 切片肿么用哈 辣么长,记不住 切片是啥, 可以吃么 嘛,所谓切片故名思意就有选取的意思啦, 跟java里面的subString()意思差不多, 从原始的字符串中按规则提取出新的字 ...

  2. Scala学习笔记一

    首先是安装Scala 下载Scala进行安装 http://www.scala-lang.org/ 安装好scala后,为scala配置系统环境参数 新建环境变量SCALA_HOME,值为scala安 ...

  3. SQL 使用 AND 与 OR

    1.介绍:关于AND与OR的使用是比较基础的,但是在项目中如果不注意使用的话会使查出来的数据有错误. 2.主要问题: 在未加任何AND与OR的选择是独立的,与逻辑运算一样.即: SELECT * FR ...

  4. 收藏的 500多个开源的Git源码

    由dkhamsing发起的Open-Source iOS Apps收集了各种开源的iOS App,并进行了详细的分类,比如游戏.社交.健康.键盘.定位.多媒体.新闻.办公.安全以及小工具类等.截至目前 ...

  5. C# v3微信 access token 过期处理的问题

    //记录access token 申请时的时间 private static DateTime GetAccessToken_Time; /// <summary> /// 过期时间为72 ...

  6. project 2016 11 20 树的多项式

    #include <iostream>#include <stack>#include <cmath>#include <sstream> using ...

  7. ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节集合

    核心代码 using System; using System.Data; using System.Configuration; using System.Web; using System.Web ...

  8. 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  9. QT 第三方串口库COM10以上无法读取问题

    当COM口的端口号高于9时,也就是说从COM10往后,serialPortName赋值就不能跟COM1~~COM9一样,C++中COM大于9时,COM前面需要加上\\.\COM. 如,serialPo ...

  10. About MTU,TCP-MSS (转)

    MSS是Maxitum Segment Size 最大分段大小的缩写,意为TCP数据包每次能够传输的最大数据分段,是TCP协议里面的一个概念.MSS值所表示的是TCP报文的净载荷数据大小.通过设置其大 ...