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="" 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的更多相关文章
- 【AS3】Flash与后台数据交换四种方法整理
随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...
- [转]Flash、Flex、AS3.0框架及类库资源收集之十全大补
原文地址:http://www.d5power.com/portal.php?mod=view&aid=27 APIs.Libs.Components1.as3ebaylibhttp://co ...
- CODE大全大量Flash网站收藏
我的博客:CODE大全:www.codedq.net:业余草:www.xttblog.com:爱分享:www.ndislwf.com或ifxvn.com. http://www.wallop.com在 ...
- Flash&Flex大全
官方在线帮助(没标英文的都是中文) 用于 Adobe Flash Platform 的 ActionScript 3.0 参考 更多参考使这样的链接下载离线版:http://help.adobe.co ...
- 隐私泄露杀手锏 —— Flash 权限反射
[简版:http://weibo.com/p/1001603881940380956046] 前言 一直以为该风险早已被重视,但最近无意中发现,仍有不少网站存在该缺陷,其中不乏一些常用的邮箱.社交网站 ...
- 百度 flash html5自切换 多文件异步上传控件webuploader基本用法
双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...
- 解决“chrome提示adobe flash player 已经过期”的小问题
这个小问题也确实困扰我许久,后来看到chrome吧里面有人给出了解决方案: 安装install_flash_player_ppapi, 该软件下载地址:http://labs.adobe.com/do ...
- 在 Linux 中使用搜狗拼音输入法以及搞定 Flash 和支付宝
在 Ubuntu 中安装搜狗输入法 在 Ubuntu Kylin 系统中,默认安装搜狗拼音输入法,但是在原生 Ubuntu 系统中则不是.这可以理解,毕竟搜狗输入法的 Linux 版有 Kylin 团 ...
- [异常解决] ubuntukylin16.04 LTS中关于flash安装和使用不了的问题解决
http://www.linuxdiyf.com/linux/25211.html 归纳解决flash插件大法: 启动器中找到 软件更新,启动,点击 其它软件,把Canonical合作伙伴前方框 选上 ...
随机推荐
- Python切片
切片是啥, 可以吃么 切片肿么用哈 辣么长,记不住 切片是啥, 可以吃么 嘛,所谓切片故名思意就有选取的意思啦, 跟java里面的subString()意思差不多, 从原始的字符串中按规则提取出新的字 ...
- Scala学习笔记一
首先是安装Scala 下载Scala进行安装 http://www.scala-lang.org/ 安装好scala后,为scala配置系统环境参数 新建环境变量SCALA_HOME,值为scala安 ...
- SQL 使用 AND 与 OR
1.介绍:关于AND与OR的使用是比较基础的,但是在项目中如果不注意使用的话会使查出来的数据有错误. 2.主要问题: 在未加任何AND与OR的选择是独立的,与逻辑运算一样.即: SELECT * FR ...
- 收藏的 500多个开源的Git源码
由dkhamsing发起的Open-Source iOS Apps收集了各种开源的iOS App,并进行了详细的分类,比如游戏.社交.健康.键盘.定位.多媒体.新闻.办公.安全以及小工具类等.截至目前 ...
- C# v3微信 access token 过期处理的问题
//记录access token 申请时的时间 private static DateTime GetAccessToken_Time; /// <summary> /// 过期时间为72 ...
- project 2016 11 20 树的多项式
#include <iostream>#include <stack>#include <cmath>#include <sstream> using ...
- ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节集合
核心代码 using System; using System.Data; using System.Configuration; using System.Web; using System.Web ...
- 丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- QT 第三方串口库COM10以上无法读取问题
当COM口的端口号高于9时,也就是说从COM10往后,serialPortName赋值就不能跟COM1~~COM9一样,C++中COM大于9时,COM前面需要加上\\.\COM. 如,serialPo ...
- About MTU,TCP-MSS (转)
MSS是Maxitum Segment Size 最大分段大小的缩写,意为TCP数据包每次能够传输的最大数据分段,是TCP协议里面的一个概念.MSS值所表示的是TCP报文的净载荷数据大小.通过设置其大 ...