flash cs3中如何使用amfphp

 

http://space.flash8.net/space/?708685/viewspace-398781.html

从amfphp网站上下载amfphp ,解压缩到你的网站的根目录下,解压缩后你的网站根目录会出现一个新的目录叫做amfphp,amfphp的所有文件都在这个目录里面。

下面我们来写一个HelloWorld程序。

打开你最喜欢的php编辑器,写一个简单的helloworld程序,程序代码如下:

<?php
class SkyShe {
public function sayHello(){
return "hello world!";
}
}
?>

然后将该php文件命名为SkyShe.php(文件名必须要和类名保持一致),并保存到你的网站/amfphp/services/目录下。

提示:你所有需要在flash里面调用的php服务都必须保存到amfphp/services/目录下

上面代码首先定义了一个类SkyShe,在该类里面有一个方法sayHello(),调用该方法会返回一个字符串"hello world!"。 下面我们来测试一下该方法是否可用,在你的浏览器地址栏里面输入http://localhost/amfphp/browser/,回车, 保持“配置(configuration)”面板里的默认设置,直接点击“保存(save)”按钮,

 

配置面板

 

然后我们会进入“服务浏览器(services browser)”界面,在界面左边你会看到一个新的服务叫做“Skyshe”,(提示:服务名称 就是你的/amfphp/services/目录下的文件名称,所以你的文件名称必须要和你的类名一致,否则你的服务方法将会变得不可见, 很简单,就拿我们的SkyShe.php文件来说,这个文件里的类名是SkyShe,如果你把这个文件存为jackyshe.php,那么你的服务 名称就会变为jackyshe,那么当你你调用jackyshe.sayHello(),就会找不到这个方法,因为这个文件里面根本没有jackyshe 这个类,当然也不可能存在jackyshe.sayHello()这个方法了。)点击"SkyShe“这个服务名称在右边会出现这个服务里面的 所有方法,目前我们只定义了一个方法sayHello,所以你也只能看到这个方法。 服务浏览器界面

点击”sayHello“方法将其选中(因为当前只有一个方法,所以默认是选中的,如果有多个方法,你需要首先选择一个方法),然后点击”调用(call)“ 按钮来调用这个方法。 点击后你会在下方”结果(result)“选项卡上看到该方法的输出“hello world!”。

调用方法后返回结果

这表示你的服务方法一切OK,如果报错的话, 你可能需要修改你的php代码,看看是不是代码写的有问题。

测试成功后,下面我们就来写flash代码调用sayHello方法。 打开flash cs3程序,新建一个actionscrīpt 3文件,并将其命名为HelloWorld.fla,建立两个图层,一个图层为"text", 另外一个为"as",在图层"text"建立一个动态文本域,给其实例名为"myText",在图层"as"将放入actionscrīpt代码, flash界面图示

代码如下:

import flash.net.Responder;
import flash.net.NetConnection;


var mynet:NetConnection = new NetConnection();

mynet.connect("amfphp/gateway.php");
mynet.call("SkyShe.sayHello",new Responder(onOk, onNotOk));

function onOk(e:String){
myText.text = e;
}

function onNotOk(){
myText.text = "failer";
}

在flash cs3中如果要使用amfphp,须要 flash.net.Responde和 flash.net.NetConnection两个类的支持,所以我们首先将这两个类导入。然后建立一个新的 NetConnection对象 mynet,如果要调用php服务,须要连接到php后台,所以 mynet.connect("amfphp/gateway.php"); (这里 假设我们的flash文件编译后位于服务器根目录,所以相对地址是amfphp/gateway.php),连接后就可以调用具体的服务了,mynet.call("SkyShe.sayHello",new Responder(onOk, onNotOk)); 这行代码表示,我们要调用SkyShe服务的sayHello方法,调用成功后执行onOk函数,如果调用失败则执行onNotOk函数 。

函数onOk有一个参数,这个参数表示调用 sayHello方法的返回值。查看最初的php代码知道sayHello方法返回一个字符串“hello world!”,所以我们可以直接把这个返回值赋给myText.text属性。

选择“文件-发布”,完成后在浏览器地址栏输入http://localhost/HelloWorld.html后你应该可以看到你的flash画面上出现“hello world!”。

运行结果

上面这个程序是不是比较简单,不过作为初学者的范例程序还是比较合适的。其实你可以在你的php方法里面进行任何操作,比如说进行很复杂的后台处理,操作完后返回一个值,告知flash处理完毕;或者在你的php方法里面调用数据库,并将结果返回给flash。记得每次调用一个具体的服务之前,使用amfphp的“服务浏览器”测试一下你的服务方法,看看你的方法是否正确执行。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值