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合作伙伴前方框 选上 ...
随机推荐
- proc文件系统
在shell终端里不带任何参数,直接运行mount命令可以显示正在挂载的文件系统.其中有这么一行 none on /proc type proc (rw) 这就是/proc文件系统.第一个域显示non ...
- [php-src]扩展中封装业务与 call_user_function 的使用建议
内容均以php5.6.14为例. 从一个封装 uniqid 的例子来讲. /* {{{ wrapper of uniqid */ PHP_FUNCTION(fox) { // #1. zval *pr ...
- Java多线程基本概念
基本概念 线程与任务的概念不一样. 任务:通常是一些抽象的且离散的工作单元,比如在Web请求中,针对用户的请求需要返回相应的页面是一个任务,在Java中实现Runnable接口的类也是一个任务. 线程 ...
- php发展起源
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor".注意不是“Hypertext Preproces ...
- js获取单选按钮的值
function a(){ var v=document.getElementsByName("radio"); ;i<v.length;i++){ if(v[i].chec ...
- MVC 单元测试
1.新建mvc项目 添加controller 添加action 或者方法 public ActionResult Index(string str) { ViewBag.Teststr = str; ...
- myeclipse2014激活
MyEclipse2014破解教程 一. 在破解myeclipse2014之前,要先把环境变量配置好: 1)打开我的电脑--属性--高级--环境变量 2)新建系统变量JAVA_HOME 和CLASSP ...
- Coursera Robotics系列课心得
Robotics Perception Professor Kostas and Jianbo Shi week 1: camera model 凸透镜成像原理:凸透镜焦点与焦距是固定的,这是物理性质 ...
- JS-offsetParent定位父节点
offsetParent:离当前元素最激动呢一个有定位的父节点 如果没有定位父级,默认是body IE7以下如果当前元素没有定位默认是body,如果有定位就是html IE7以下,如果当前元素的某个父 ...
- HTML5 Web Worker的使用
Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面. 一:如何使用Worker Web Wo ...