[原]as3 flash web 应用 (7)flash与php的交互(A)

2010年06月20日 星期日 18:05

由于某度众所周知的铜臭举动,我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。

鉴于最近有些抓取机器和抄袭者,把标题的【原】字都复制,我不得不声明:本文为 yukon12345原创,转载请注明出处http://blog.csdn.net/yukon12345



上面几篇讲了as3和js的交互,现在来讲as3与php的交互

这篇主要讲的是以http协议和php交互,
和ajax有一点相似,发送消息给服务器,然后等待获取消息。不过是完全异步的,而且比ajax方便很多,因为不用考虑各种浏览器的支持方式,处理xml也比较容易。

首先要清楚几个as3的类,分别是URLLoader,我们可以理解为信息装载器,就像一个触摸显示器,提供一个交互的接口
然后是URLRequest,可发起各种发送和接收的请求,
最后是URLVariables,是一个用于格式化放入发送给php消息的类。

先是最简单的:
1.取回php的文本消息。
as3:
var loader=new URLLoader() //一个装载器
var urlR=new URLRequest() //请求类
urlR.url="http://127.0.0.1/upload/8php/repeat.php" //请求地址
var txt=new TextField()
txt.width=300
txt.x=20
txt.y=30
addChild(txt)
loader.addEventListener(Event.COMPLETE,function(){
txt.text=loader.data //当接收完毕后获取装载器取回的消息
})
loader.load(urlR)//发送请求



php页面中:

echo"whoa冯阿三的";

这样即可看到flash里显示php返回的消息
2.发送给PHP消息,php接收后返回文本数据。
如果要发送消息给php,就需要URLVariables类来格式化数据了
as3
var loader=new URLLoader()
var urlR=new URLRequest()
urlR.method=URLRequestMethod.POST //设定发送类型为post
urlR.url="http://127.0.0.1/upload/8php/repeat2.php"
var variable=new URLVariables() //初始化一个URLVariables,然后格式化各种数据
variable.name1="from flash~~~"
variable.name2="this is 2"
urlR.data=variable //赋值请求数据
var txt=new TextField() 
txt.width=300
txt.x=20
txt.y=30
addChild(txt)


loader.addEventListener(Event.COMPLETE,function(){
txt.text=loader.data 
})
loader.load(urlR)


php页面中:
if (isset($_POST["name1"])){
echo "这是flash 发来的变量name1的值:".$_POST["name1"];
}



3,发送给php 消息,php接收后返回URL参数数据。
需要设置loader的接收格式为VARIABLES
as3:
var loader=new URLLoader()
//设置装载器的接收格式为URL参数格式
loader.dataFormat=URLLoaderDataFormat.VARIABLES
var urlR=new URLRequest()
urlR.method=URLRequestMethod.POST
urlR.url="http://127.0.0.1/upload/8php/repeat3.php"
var variable=new URLVariables()
variable.name1="from flash~~~"
variable.name2="this is 2"
urlR.data=variable
var txt=new TextField()
txt.width=300
txt.x=20
txt.y=30
addChild(txt)

loader.addEventListener(Event.COMPLETE,function(){
//接收到的数据
txt.text=loader.data.phpData2+loader.data.phpData1
})
loader.load(urlR)


php页面中:

if (isset($_POST["name1"])){
echo "phpData1=".$_POST["name1"]."&phpData2=sdfsdfds";
}


4.发送给php消息,php返回XML格式数据
as3
var loader=new URLLoader()
//注意设置装载器的接收格式为TEXT
loader.dataFormat=URLLoaderDataFormat.TEXT
var urlR=new URLRequest()
urlR.method=URLRequestMethod.POST
urlR.url="http://127.0.0.1/upload/8php/repeat4.php"
var variable=new URLVariables()
variable.name="[图片名]"
variable.path="[图片地址]"
urlR.data=variable
var txt=new TextField()
txt.width=300
txt.x=20
txt.y=30
addChild(txt)

loader.addEventListener(Event.COMPLETE,function(){ 
//将接收的文本xml化
var xml=new XML(loader.data) 
//选择呈现xml数据
txt.text=xml.image[0].@path+xml.image[0].@name
})
loader.load(urlR)



php页面中:
if (isset($_POST["name"])){
$xml="<root>\n";
$xml.='<image name="'.$_POST["name"].'" path="'.$_POST["path"].'"/>'."\n";
$xml.="</root>";
}
echo '<?xml version="1.0" encoding="urf-8"?>'."\n";
echo $xml;




上面4个例子比较推荐xml格式,因为容易实现数据通用,系统集成。

源文件下载


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值